tableau multidimensionnel foreach

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : tableau multidimensionnel foreach

Re: tableau multidimensionnel foreach

par sirakawa » 28 mai 2012, 18:55

Un tableau multidimensionnel, dans mon esprit, est un tableau à plusieurs lignes et plusieurs colonnes:
sexe|fumeurs|abstinents
|garcons|85%|20%|
|filles|33%|67%

Re: tableau multidimensionnel foreach

par vladoum » 28 mai 2012, 18:17

Merci beaucoup pour vos réponses. Je vais essayer d'examiner ça de plus près.

Re: tableau multidimensionnel foreach

par GiorgioLino » 28 mai 2012, 12:16

Pour "plusser" @moogli,

tu trouves des infos à ce sujet dans la doc php
functions.arguments.by-reference

Re: tableau multidimensionnel foreach

par moogli » 28 mai 2012, 12:13

salut,

le & indique un passage par référence et non par valeur ?

Qu'est ce que ça signifie ?

un passage par valeur est simple à comprendre, on passe un valeur c'est tout.
Un passage par référence c'est le fait de donner à la fonction "l'adresse" de la variable et non sa valeur, ont dit que l'on passe une référence sur la variable.

le fait de passer une référence permet à la fonction qui reçois cette référence d'utiliser directement la variable (sans tenir compte de la portée des variables).
<?php
function explodeTree($parts)
{
         $returnArr=array();
         $parentArr=&$returnArr; // créer une référence et non un copie
         foreach ($parts as $part){
                $parentArr[$part]=array();
                $parentArr=&$parentArr[$part]; // idem
         }
         return $returnArr;
}
?>
$returnArr est donc modifié à chaque affectation de $parentArr.

@+

tableau multidimensionnel foreach

par vladoum » 28 mai 2012, 11:15

Bonjour,

Je cherche à créer avec une boucle foreach un tableau multidimensionnel. J'ai cherché un peu sur le net et j'ai trouvé une solution qui marche mais je ne comprends pas comment. J'aurai besoin de vos explications donc :)
function explodeTree($parts)
{
         $returnArr=array();
  	 $parentArr=&$returnArr;
	 foreach ($parts as $part){
	 	$parentArr[$part]=array();
	 	$parentArr=&$parentArr[$part];
	 }
         return $returnArr;
}

$parts=Array('bla','bli','blo');
$tree = explodeTree($parts);
echo("<pre>");
print_r($tree);
echo("</pre>");
Voila, je ne voit pas pourquoi on utilise "&$" dans la fonction et comment comme par magie le tableau final se retrouve dans $returnArr :?: