Maison > Article > développement back-end > Exemples détaillés de trois méthodes pour parcourir les tableaux list(), each() et while
Présente principalement le résumé des trois méthodes list(), each() et while de la boucle PHP traversant le tableau L'accent est mis sur l'utilisation mixte de ces trois méthodes.
Fonction ①each()
La fonction each() doit passer un tableau en paramètre, renvoyer la paire clé/valeur de l'élément actuel dans le tableau, et déplacez le pointeur du tableau vers l’arrière jusqu’à la position de l’élément suivant. Les paires clé/valeur sont renvoyées sous la forme d'un tableau associatif et indexé mixte avec 4 éléments, avec les clés 0, 1, clé et valeur. Le nom de clé 0 est identique à la valeur correspondant à key, qui est le nom de clé de l'élément du tableau, tandis que 1 et value contiennent la valeur de l'élément du tableau. Si le pointeur interne dépasse la fin du tableau, each() renvoie FALSE. L'utilisation de la fonction each() est la suivante :
<?php $contact = array("ID" => 1,"姓名" => "高某","公司" => "A公司","地址" => "北京市",); $id = each($contact); //返回数组$contact中第一个元素的键/值对,是带有4个元素的数组 print_r($id); //输出数组$id:Array([1]=>1,[value]=>1,[0]=>ID,[key]=>ID) $name = each($contact); //返回数组$contact中的第二个元素的键/值对,是带有4个元素的数组 print_r($name); //输出Array([1]=>高某,[value]=>高某,[0]=>姓名,[key]=>姓名) $company = each($contact); print_r($company); //输出Array([1]=>A公司,[value]=>A公司,[0]=>公司,[key]=>公司) $address = each($contact); print_r($address); //输出Array([1]=>北京市,[value]=>北京市,[0]=>地址,[key]=>地址) $no = each($contact); var_dump($no); //输出bool(false) ?>
Fonction ②list()
Ce n'est pas une vraie fonction, mais une structure du langage PHP. list() attribue des valeurs à un ensemble de variables en une seule étape, c'est-à-dire attribue les valeurs du tableau à certaines variables. list() ne peut être utilisé qu'avec des tableaux indexés numériquement et suppose que les indices des tableaux commencent à 0. Le format de syntaxe est le suivant :
list(mixed varname,mixed…) = array_expression
L'utilisation de l'instruction list() est très différente des autres fonctions. Elle ne reçoit pas directement un tableau en paramètre. Au lieu de cela, la valeur de chaque élément du tableau est attribuée à chaque paramètre de la fonction list() par affectation via l'opérateur "=". La fonction list() convertit à son tour chaque paramètre en une variable pouvant être utilisée directement dans le script. L'utilisation est la suivante :
<?php $info = array('coffee','brown','caffeine'); list($drink,$color,$power) = $info; list($drink,,$power) = $info; //变量的值是数组中第一个和第三个值 list( , ,$power) = $info; //变量值是数组中第三个元素的值 ?>
Après avoir compris l'utilisation de la fonction list() à travers l'exemple ci-dessus, combinez la fonction each() avec la fonction list(). Le code est le suivant :
<?php $contact = array("ID" => 1,"姓名" => "高某","公司" => "A公司","地址" => "北京市",); list($key,$value) = each($contact); echo "$key => $value"; //输出变量$key和$value,中间使用“=>”分割 ?>
③boucle while Parcourir le tableau
Utilisation des instructions each() et list() introduites plus tôt, il n'est pas difficile de comprendre si vous utilisez une boucle while pour parcourir le tableau. Le format de syntaxe utilisé est le suivant :
while(list($key,$value) = each(array_expression)){ 循环体 }
Ce format d'union traverse le tableau array_expression donné. Dans chaque boucle de l'instruction while(), l'instruction each() attribue la clé de l'élément actuel du tableau à la première variable paramètre $key de la fonction list(). Et attribuez la valeur dans l'élément actuel du tableau à la deuxième variable paramètre $value dans la fonction list(), et après l'exécution de l'instruction each(), le pointeur à l'intérieur du tableau sera reculé d'un pas, donc la prochaine fois while( ) Lorsque l'instruction boucle, la paire clé/valeur de l'élément suivant du tableau sera obtenue. Jusqu'à la fin du tableau, l'instruction each() renvoie FALSE, et l'instruction while() arrête la boucle et termine le parcours du tableau .
<?php $contact = array( "ID" => 1, "姓名" => "高某", "公司" => "A公司", "地址" => "北京市", "电话" => "(010)98765432", "EMAIL" => "gao@brophp.com", ); //以HTML列表的方式输出数组中每个元素的信息 echo '<dl>一个联系人信息:'; while(list($key,$value) = each($contact)){ echo "<dd>$key : $value</dd>"; } echo '</dl>'; ?>
peut également être imbriqué pour parcourir un tableau multidimensionnel de la même manière. Bien que les résultats de la traversée du tableau soient les mêmes que ceux de l'instruction freach, il existe des différences entre les deux méthodes. Après avoir utilisé l'instruction while pour parcourir le tableau, l'instruction each() a pointé le pointeur interne du paramètre de tableau passé vers la fin du tableau. Lorsque l'instruction while est utilisée pour parcourir à nouveau le même tableau, le pointeur du tableau est déjà à la fin du tableau et l'instruction each() renvoie directement FALSE, et l'instruction while ne sera pas exécutée dans la boucle. Appelez uniquement la fonction reset() avant l'exécution de l'instruction while pour réinitialiser le pointeur du tableau sur le premier élément. L'instruction foreach réinitialisera automatiquement la position du pointeur du tableau. Lorsque foreach commencera à s'exécuter, le pointeur à l'intérieur du tableau pointera automatiquement vers la première unité. Cela signifie qu'il n'est pas nécessaire d'appeler la fonction reset() avant la boucle foreach.
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!