Maison >développement back-end >tutoriel php >Explication détaillée des exemples d'utilisation du parcours de tableau foreach dans un tableau PHP (image)

Explication détaillée des exemples d'utilisation du parcours de tableau foreach dans un tableau PHP (image)

黄舟
黄舟original
2017-05-04 11:48:047111parcourir

Qu'est-ce que foreach pour parcourir un tableau ?

Lorsque nous utilisons foreach pour parcourir un tableau, nous commettons souvent des erreurs en raison de concepts peu clairs. Voici une brève introduction aux opérations foreach couramment utilisées.

(PHP 4, PHP 5, PHP 7)

La structure syntaxique foreach fournit un moyen simple de parcourir un tableau. foreach ne peut être appliqué qu'aux tableaux et aux objets. Si vous essayez de l'appliquer à des variables d'autres types de données ou à des variables non initialisées, un message d'erreur sera émis.

Deux syntaxes pour que foreach traverse un tableau  :

foreach (array_expression as $value)
    statement
foreach (array_expression as $key => $value)
    statement

Le premier format traverse le tableau array_expression donné. Dans chaque boucle, la valeur de l'unité actuelle est attribuée à $value et le pointeur à l'intérieur du tableau avance d'un pas (l'unité suivante sera donc obtenue dans la boucle suivante).

Le deuxième format fait la même chose, sauf que le nom de clé de l'unité actuelle sera également attribué à la variable $key dans chaque boucle.

Depuis PHP 5, il est également possible de parcourir des objets.

Remarque : lorsque foreach commence à s'exécuter, le pointeur à l'intérieur du tableau pointe automatiquement vers la première unité. Cela signifie qu'il n'est pas nécessaire d'appeler reset() avant la boucle foreach.

Remarque : à moins que le tableau ne soit référencé, foreach opère sur une copie du tableau spécifié, pas sur le tableau lui-même. foreach a des effets secondaires sur les pointeurs de tableau. Ne vous fiez pas à la valeur d'un pointeur de tableau pendant ou après une boucle foreach à moins qu'il ne soit réinitialisé.

Depuis PHP 5, il est facile de modifier les éléments d'un tableau en ajoutant & avant $value. Cette méthode attribue par référence plutôt que de copier une valeur. La référence de

<?php
header("Content-Type:text/html; charset=utf-8");
$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) {
    $value = $value * 2;
}
// $arr is now array(2, 4, 6, 8)
unset($value); // 最后取消掉引用
?>

$value n'est disponible que si le tableau parcouru peut être référencé (par exemple, il s'agit d'une variable). Le code suivant ne s'exécutera pas :

<?php
foreach (array(1, 2, 3, 4) as &$value) {
    $value = $value * 2;
}
?>

Remarque : La référence $value du dernier élément du tableau sera toujours conservée après la boucle foreach. Il est recommandé d'utiliser unset() pour le détruire. foreach ne prend pas en charge la possibilité de supprimer les messages d'erreur à l'aide de "@".

Ce qui suit est un exemple de php foreach traversant un tableau

1 Le tableau à parcourir est unidimensionnel. tableau, ce qui est relativement simple. S'il s'agit d'un seul tableau, utilisez deux méthodes pour le représenter, comme suit :

<?php
header("Content-Type:text/html; charset=utf-8");
$array = array("PHP中文网","百度","搜狗","www.php.cn");
foreach ($array as $value){
    echo $value."<br>";
}
echo "<br>";
foreach ($array as $key =>$value){
    echo $key."--".$value."<br>";
}
?>

Le résultat de sortie est :

Explication détaillée des exemples dutilisation du parcours de tableau foreach dans un tableau PHP (image)

2. est un tableau associatif unidimensionnel, affiché comme suit, Notez que les valeurs clés sont différentes :

<?php
header("Content-Type:text/html; charset=utf-8");
$array = array("网站1"=>"PHP中文网","网站2"=>"百度","网站3"=>"搜狗","网址"=>"www.php.cn");
foreach ($array as $value){
    echo $value."<br>";
}
echo "<br>";
foreach ($array as $key =>$value){
    echo $key."--".$value."<br>";
}
?>

Le résultat du parcours est :

Explication détaillée des exemples dutilisation du parcours de tableau foreach dans un tableau PHP (image)

3. Parcourir le tableau bidimensionnel C'est un peu plus gênant. La valeur à ce moment est un tableau, à partir duquel diverses méthodes d'exploitation des tableaux peuvent être dérivées. Parcourons d'abord le tableau bidimensionnel de base :

<?php
header("Content-Type:text/html; charset=utf-8");
$array = array(
    array("1","PHP中文网"),
    array("2","www.php.cn"),
    array("3","百度"),
    array("4","搜狗")
);
foreach ($array as $value){
    print_r($value);
    echo "<br>";
}
?>

Les résultats du parcours sont les suivants :

Explication détaillée des exemples dutilisation du parcours de tableau foreach dans un tableau PHP (image)

En utilisant la deuxième méthode, lors du parcours du tableau , vous devez faire attention à la valeur de la clé, ne la confondez pas avec la valeur de l'identifiant du tableau

<?php
header("Content-Type:text/html; charset=utf-8");
$array = array(
    array("1","PHP中文网"),
    array("2","www.php.cn"),
    array("3","百度"),
    array("4","搜狗")
);
foreach ($array as $key =>$value){
    echo "key =".$key."<br>";
    print_r($value);
    echo "<br>";
}
?>

Les résultats du parcours sont les suivants :

Explication détaillée des exemples dutilisation du parcours de tableau foreach dans un tableau PHP (image)

De plus, il y a souvent des demandes de combinaison de deux. Une certaine colonne du tableau dimensionnel devient un tableau unidimensionnel. À ce stade, le champ correspondant dans la valeur doit être retiré et placé dans le tableau unidimensionnel. S'il est utilisé avec une boucle for, il est plus simple d'utiliser foreach. Comme suit, récupérez la colonne id du tableau actuel et la colonne name sont respectivement stockées dans des tableaux unidimensionnels :

.
<?php
header("Content-Type:text/html; charset=utf-8");
$array = array(
    array("id"=>"1","name"=>"PHP中文网"),
    array("id"=>"2","name"=>"www.php.cn"),
    array("id"=>"3","name"=>"百度"),
    array("id"=>"4","name"=>"搜狗")
); //二维数组定义
//获取某一列作为一维数组
$idArr = array();//id列
$nameARR = array();//name列
foreach($array as $key => $value){
    $arr = $value["id"];
    $idArr =$arr;  //存入ID列
    $name = $value["name"];
    $nameARR = $name;  //存入name列
    print_r($idArr);
    print_r($nameARR);
}
?>

Le résultat du parcours est :

Explication détaillée des exemples dutilisation du parcours de tableau foreach dans un tableau PHP (image)


[Tutoriels recommandés]

1. : "tableau php (Array) "

2. Cours vidéo connexes recommandés : " Utilisez la boucle foreach pour parcourir : index et tableau associatif.


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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn