php foreach traverse des tableaux associatifs
Syntaxe de base de foreach
Nous avons appris à parcourir le tableau d'index d'indices consécutifs à travers le contenu du chapitre précédent. Cependant, nous avons constaté que nous ne pouvons pas parcourir de tableaux associatifs, ni de tableaux d'index avec des indices discontinus.
Eh bien, lorsque nous étudiions les boucles, il existait une boucle booléenne qui était spécifiquement utilisée pour parcourir les tableaux. La syntaxe de base de cette boucle est la syntaxe de base de foreach.
Le format de syntaxe est le suivant :
foreach( 要循环的数组变量 as [键变量 =>] 值变量){ //循环的结构体 }
Parcourir des tableaux associatifs
Il s'agit d'un usage fixe, mettez le tableau à boucler.
as est un mot-clé fixe. La variable clé après
est facultative. Vous pouvez définir une variable à volonté. Chaque fois qu'elle boucle, la syntaxe foreach retirera la clé et l'attribuera à la variable clé après <🎜. >. La variable valeur est obligatoire. À chaque boucle, la valeur est placée dans la variable value.
<?php $data = [ 'fj' => '凤姐', 'fr' => '芙蓉', ]; foreach($data as $key => $value){ echo $key . '-------' . $value . '<br />'; } //如果我们只想读取值的话,就可以把下面的$key => 给删除掉,读取的时候,就只读取值了。做完上面的实验,你可以打开下面的代码再实验几次。 /* foreach($data as $value){ echo $value . '<br />'; } */ ?>Lançons-le et voyons les résultats :
Parcourir le tableau d'index
foreach est assez facile à apprendre. Par conséquent, nous pouvons parcourir le tableau d'index continu via foreach, comme dans l'exemple suivant :<?php $data = array( 0 => '中国', 100 => '美国', 20 => '韩国', 300 => '德国', ); //待会儿可以自己做做实验,循环遍历一下下面的这个数组 //$data = array(1,2,3,4,5,6,7,8,9,10); foreach($data as $k => $v){ echo $k . '------' . $v .'<br />'; } ?>Exécuter et voir les résultats : Raisonnement basé sur le les résultats de foreach sont les mêmes que ceux que nous venons de faire. Le résultat pour un tableau associatif est le même.
La différence réside dans le tableau d'index discontinu. Chaque fois qu'un élément du tableau est lu, l'indice de la boucle courante est affecté à la variable $k, et la valeur est affectée à la variable $v. La clé et la valeur sont sorties pour chaque lecture puis affichées. La boucle recule d'un index à la fois. Lisez jusqu'à la fin et quittez l'exécution.
Parcours de tableaux multidimensionnels
Comment devons-nous parcourir lorsqu'il y a un autre tableau dans le tableau ? Faisons une expérience :<?php $data = array( 0 => array( '中国' => 'china', '美国' => 'usa', '德国' => ' Germany', ), 1 => array( '湖北' => 'hubei', '河北' => 'hebei', '山东' => 'shandong', '山西' => 'sanxi', ), ); //注:我们在使用foreach循环时,第一次循环将键为0和键为1的两个数组赋值给一个变量($value)。然后,再套一个循环遍历这个$value变量,$value中的值取出来,赋值给$k和$v。 foreach($data as $value){ //第一次循环把国家的数组赋值给了$value //第二次循环把中国的省份的数组又赋值给了$value //因此,我在循环的时候把$value再遍历一次 foreach($value as $k => $v){ echo $k . '-----' . $v .'<br />'; } //为了看的更清晰,我在中间加上华丽丽的分割线方便你来分析 echo '----------分割线-----------<br />'; } ?>Le résultat est sorti :
La première boucle sort de la boucle du sous-tableau et le code suivant est exécuté pour afficher la ligne de démarcation.
Et ainsi de suite pour le deuxième cycle.
Job
parcourt et affiche le tableau suivant :
<?php $arr=array( '教学部'=>array( array('李某','18','人妖'), array('高某','20','男'), array('张某','21','妖人'), ), '宣传部'=>array( array('李某','18','人妖'), array('高某','20','男'), array('张某','21','妖人'), ), '财务部'=>array( array('李某','18','人妖'), array('高某','20','男'), array('张某','21','妖人'), ), ); ?>
, l'effet est le suivant :
Résumé :
1. Dans la première boucle, attribuez le tableau à $value, puis utilisez foreach pour boucler $value. Donnez la clé dans le sous-tableau bidimensionnel à $k et attribuez la valeur à la variable $v.
2. La première boucle sort de la boucle du sous-tableau et exécute le code suivant pour afficher la ligne de démarcation.
3. Et ainsi de suite, il en est de même pour le deuxième cycle.