1, foreach est la sortie loop de PHP pour array.
Exemple :
$arr = array("1"=>"111","2"=>"222","3"=>"333"); foreach($arr as $key=>$value) { echo $key."=>".$value."\n"; }
Le résultat est le suivant :
1=>111 2=>222 3=>333
2, légèrement modifié :
foreach($arr as $key=>$value) { //echo $key."=>".$value."\n"; $key = &$arr[$key]; } print_r($arr);
Le résultat est le suit :
Array ( [1] => 2 [2] => 3 [3] => 333 )
Explication du code :
Nous avons constaté que le tableau d'origine a été modifié. Pourquoi ? Étudions-le.
La partie clé du code est : $key = &$arr[$key];
$key est la référence de $arr[$key], c'est-à-dire que lorsque $key est modifié, $arr[$key] est également modifié à la valeur correspondante.
Tout d'abord, nous devons comprendre le principe de foreach, qui attribue respectivement les valeurs du tableau à $key et $value ;
Donc, $key et $value sont aussi ordinaire Variable.
Ensuite, lors de la première boucle, $key = &$arr[$key]; signifie que &$arr[1] pointe vers la variable $key.
Lorsque la boucle foreach atteint la deuxième passe, $key se voit d'abord attribuer une valeur de 2. À ce moment-là, faites à nouveau attention, $key = &$arr[$key];
Le résultat est : $arr[1] se voit attribuer la nouvelle $key à ce moment, qui est 2.
Après la deuxième boucle, le tableau d'origine devient :
Array ( [1] => 2 [2] => 222 [3] => 333 )
Idem Comme Logiquement, après la fin du troisième cycle, ce sera :
Array ( [1] => 2 [2] => 3 [3] => 333 )
À ce stade, cela a été grossièrement expliqué.
3. Afin de comprendre plus clairement le processus d'affectation dans foreach, nous pouvons faire ceci :
$arr = array("1"=>"111","2"=>"222","3"=>"333"); foreach($arr as $key=>$value) { $key = &$arr[$key]; $key = "hello"; unset($key); print_r($arr); }
Le résultat est le suivant :
Array ( [1] => hello [2] => 222 [3] => 333 ) Array ( [1] => hello [2] => hello [3] => 333 ) Array ( [1] => hello [2] => hello [3] => hello )
Explication du code :
Nous attribuons directement la valeur de $key à "hello" dans chaque boucle, afin de ne pas l'affecter, puis libérons la variable $key.
Cela devrait rendre les choses plus claires.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!