php ​foreach tr...LOGIN

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.

Nous utiliserons le code comme exemple ci-dessous pour améliorer notre compréhension de cette syntaxe.

<?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 :


QQ截图20161114131911.png

Grâce aux résultats d'exécution ci-dessus, nous obtenons les résultats suivants :

1. Chaque fois que vous bouclez, attribuez l'indice à la variable $key et affectez la variable de valeur à la variable $value

2. Lisez la clé et la valeur une fois dans la boucle. Comme dans l'exemple ci-dessus, après avoir lu "Sister Feng", lisez "Furong". Après avoir lu jusqu'à la fin, lorsqu'il s'avère qu'aucun élément du tableau ne peut être lu, la boucle arrête de parcourir les données.

Remarque : $key et $value ne doivent pas nécessairement être les noms de variables. Vous pouvez également le nommer autrement, comme $kai => $wen est le même. Vous devez savoir à quelle variable la clé est affectée et à quelle autre variable la valeur est affectée.

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 :

QQ截图20161114131954.png

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 :


Résumé :

Dans la première boucle, le tableau est affecté à $value , puis utilisez foreach pour boucler sur $value. Donnez la clé dans le sous-tableau bidimensionnel à $k et attribuez la valeur à la variable $v.

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 :

QQ截图20161114132027.png

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.


section suivante
<?php $arr=array( '教学部'=>array( array('李某','18','人妖'), array('高某','20','男'), array('张某','21','妖人'), ), '宣传部'=>array( array('李某','18','人妖'), array('高某','20','男'), array('张某','21','妖人'), ), '财务部'=>array( array('李某','18','人妖'), array('高某','20','男'), array('张某','21','妖人'), ), ); ?>
soumettreRéinitialiser le code
chapitredidacticiel