IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Tableaux] Fonction qui retourne la définition d'un tableau


Sujet :

Langage PHP

  1. #1
    Membre habitué

    Homme Profil pro
    Developpeur web
    Inscrit en
    Septembre 2006
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Developpeur web
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 225
    Points : 180
    Points
    180
    Par défaut [Tableaux] Fonction qui retourne la définition d'un tableau
    Bonjour, je cherche à faire une fonction qui retourne la définition du tableau pour la mettre dans un fichier..

    Exemple :

    $a = array("valeur1","valeur2");

    mafonction($a);

    retourne :

    "
    $tab[0] = "valeur1";
    $tab[1] = "valeur2";
    "

    Biens sur les tableaux multidimmensionnels doivent être accepté.

    Je suis entrain d'essayer de créer cette fonction (récursive) mais si vous en connaissiez une cela m'aiderait !

  2. #2
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    bah y aurait print_r() et var_dump() par exemple non?

  3. #3
    Membre habitué

    Homme Profil pro
    Developpeur web
    Inscrit en
    Septembre 2006
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Developpeur web
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 225
    Points : 180
    Points
    180
    Par défaut
    Ah oui, print_r peut-être je vais essayer.

    Merci

  4. #4
    Membre habitué

    Homme Profil pro
    Developpeur web
    Inscrit en
    Septembre 2006
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Developpeur web
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 225
    Points : 180
    Points
    180
    Par défaut
    heu non, en fait il me faut ma propre fonction car je dois modifier chaque valeur..

  5. #5
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Ah ben oui si tu dois faire un traitement spécial il faut ta propre fonction.
    Tu peux regarder du coté de array_walk_recursive() pour ne pas avoir a gérer la récursivité toi meme.

  6. #6
    Membre habitué

    Homme Profil pro
    Developpeur web
    Inscrit en
    Septembre 2006
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Developpeur web
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 225
    Points : 180
    Points
    180
    Par défaut
    merci mais je ne vois pas comment faire quand même

    Pour l'instant je chipote avec ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    function getDefOfarray($a_or_str,$in_multi_dim = false,$str_before = "") {
    	$result = "";
     
    	if(is_array($a_or_str)) { // car récursif
    		foreach($a_or_str as $cle => $valeur) {
    			if(!is_numeric($cle))
    				$cle = "'$cle'";
     
    			if(!$in_multi_dim) {
    				$str_before = "\$FILE[$cle]";
    				$result .= $str_before.getDefOfArray($valeur,true,$str_before);
    			}
    			else {
    				$str_before .= "[$cle]";
    				$result .= $str_before.getDefOfArray($valeur,false,$str_before);
    			}
    		}
    	}
    	else
    		$result .= "= stripslashes('".addslashes($a_or_str)."');\n";
     
    	return $result;
    }

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 89
    Points : 114
    Points
    114
    Par défaut
    Pas besoin de grands algos, var_export($tableau, true) te renverra ce qu'il te faut (le premier paramètre n'a aucune importance, il exporte tout et le deuxième paramètre permet de décider si on affiche ou si on retourne le résultat).

    Typiquement je l'utilise pour de la mise en cache de variable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    // Stockage de la variable
    $fp = fopen('variable.php', 'w');
    fputs($fp, '<'.'?php return ' . var_export($variable, true) . '; ?'.'>');
    fclose($fp);
     
    // Récupération de la variable
    $variable = include 'variable.php';

  8. #8
    Membre habitué

    Homme Profil pro
    Developpeur web
    Inscrit en
    Septembre 2006
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Developpeur web
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 225
    Points : 180
    Points
    180
    Par défaut
    Merci, mais j'ai besoin de modifier le contenu du tableau..
    Je ne peux pas faire une boucle sur chaque élément du tableau et puis après utiliser var_export car je dois absolument respecté cette structure : $tab[0] = stripslashes("valeur);

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fonction qui retourne plusieurs valeurs !
    Par casafa dans le forum C++
    Réponses: 20
    Dernier message: 23/04/2014, 16h56
  2. Réponses: 5
    Dernier message: 27/05/2008, 08h02
  3. Réponses: 34
    Dernier message: 24/05/2007, 16h19
  4. [Tableaux] Fonction qui retourne un tableau
    Par benooiit dans le forum Langage
    Réponses: 2
    Dernier message: 05/01/2007, 01h50
  5. [Tableaux] Pb avec fonction qui retourne 2 variables
    Par cyberdevelopment dans le forum Langage
    Réponses: 6
    Dernier message: 12/07/2006, 14h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo