PHP 4 a introduit la construction foreach, un peu comme Perl et d'autres langages. Il s'agit simplement d'un moyen pratique de parcourir un tableau. foreach ne peut être utilisé que sur des tableaux, et une erreur se produira lorsque vous tenterez de l'utiliser sur d'autres types de données ou une variable non initialisée. Il existe deux syntaxes, la seconde étant une extension moins importante mais utile de la première.
foreach (array_expression as $value) statement foreach (array_expression as $key => $value) statement
Le premier format parcourt le tableau array_expression donné. À chaque passage dans la boucle, la valeur de la cellule actuelle est affectée à $value et le pointeur à l'intérieur du tableau est avancé d'un pas (la cellule suivante sera donc obtenue dans la boucle suivante).
Le deuxième format fait la même chose, sauf que le nom de clé de la cellule actuelle est également attribué à la variable $key dans chaque boucle.
Regardons d'abord la première instruction. Cette instruction est relativement simple. array_expression fait référence à un tableau expression L'instruction as $val obtiendra séquentiellement la valeur du tableau et l'enregistrera dans. $val Dans les variables, cette méthode ne peut obtenir que la valeur du tableau, mais pas la valeur d'index d'indice du tableau. Par exemple :
$myArray=array("1"=>"val1","2"=>"val2","3"=>"val3"); foreach($myArray as $val) { print($val." "); }
Le résultat sera affiché : val1 val2 val3
Regardons le deuxième format En plus d'obtenir les éléments du tableau comme le premier format, le second. format En plus de la valeur, la valeur d'index de l'élément peut également être obtenue et enregistrée dans la variable $key. Si la valeur d'index du tableau n'a pas été définie manuellement, la valeur du paramètre par défaut du système sera renvoyée
. Voir l'exemple positif :
Regardons d'abord un simple tableau unidimensionnel :
$myArray=array("1"=>"val1","2"="val2","3"=>"val3"); foreach($myArray as $key=>$val) { print($key."=>".$val.";"); }
Le programme affichera : 1=>val1;2= >val2;3=>val3; , regardons ensuite un parcours de tableau bidimensionnel plus complexe, le programme est le suivant :
$myArray=array( "1"=>array("11"=>"val11","12"=>"val12","13"=>"val13"), "2"=>array("21"=>"val21","22"=>"val22","23"=>"val23"), "3"=>array("31"=>"val31","32"=>"val32","33"=>"val33") ); print("<ul>"); foreach($myArray as $key=>$val) { print("<li>".$key."</li>"); if (is_array($val)) { //判断$val的值是否是一个数组,如果是,则进入下层遍历 print("<ul>"); foreach($val as $key=>$val) { print("<li>".$key."=>".$val."</li>"); } print("</ul>"); } } print("</ul>");
Résultat de sortie :
1 11=>val11 12=>val12 13=>val13 2 21=>val21 22=>val22 23=>val23 3 31=>val31 32=>val32 33=>val33
Un autre exemple pour résoudre le puzzle
<?php $a = array("1"=>"语文","2"=>"数学","3"=>"英语"); $b = array("1"=>"95","2"=>"99","3"=>"92"); foreach($a as $key=>$value){ echo $value; echo $b[$key]."<br>"; } ?>
La question est de savoir pourquoi la valeur dans le tableau de sortie $b utilise $b[$key] au lieu de $b[$value] ?
Pourquoi ça ?
$a = array("1"=>"Chinese","2"=>"Mathématiques","3"=>"English");
Celui ci-dessus et le celui ci-dessous C'est exactement le même
$a[1]="Chinese";
$a[2]="Mathématiques"
$a[3]="English"
Comment afficher le tableau ci-dessus ?
Ce doit être echo $a[1];
———————————————————————————— ———————————————— -
En termes simples, foreach
son format est comme ceci foreach (nom du tableau en indice => valeur)
l'indice est Dans $a[1] ci-dessus, le 1 ici est l'indice du tableau !
Vous devriez maintenant comprendre pourquoi $a[$key] est affiché comme ceci
N'oubliez pas que peu importe la façon dont vous le modifiez, la méthode de sortie du tableau sera toujours $a[ 1], non C'est $a['langue']
================================ ======= ============================
foreach() a deux utilisations :
1: foreach(array_name as $value){ statement; }
Le array_name ici est le nom du tableau que vous souhaitez parcourir. Dans chaque boucle, la valeur de l'élément actuel du tableau array_name est affectée à $value, et l'indice. à l'intérieur du tableau descend d'un pas, c'est-à-dire revient en arrière pour obtenir l'élément suivant.
2:foreach(array_name as $key => $value){ statement; }
La différence entre cette méthode et la première est qu'il existe une clé $ supplémentaire, c'est-à-dire qu'en plus d'attribuer la valeur de l'élément actuel à $value, la valeur clé de l'élément actuel sera également attribué dans chaque boucle est affecté à la variable $key. La valeur clé peut être une valeur d'indice ou une chaîne . Par exemple, "0" dans book[0]=1, "id" dans book[id]="001".
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!