Maison  >  Article  >  développement back-end  >  Boucle PHP apprentissage quatre : Comment utiliser l'instruction foreach pour parcourir et modifier les éléments d'un tableau

Boucle PHP apprentissage quatre : Comment utiliser l'instruction foreach pour parcourir et modifier les éléments d'un tableau

青灯夜游
青灯夜游original
2021-07-29 14:03:465478parcourir

Dans l'article précédent "PHP Loop Learning 3 : Comment utiliser l'instruction de boucle for pour parcourir un tableau", nous vous avons amené à comprendre l'instruction de boucle for, analysé le processus d'exécution de l'instruction de boucle for et introduit l'utilisation de l'instruction de boucle for à travers des exemples de code Méthode de parcours d'un tableau. La méthode d'utilisation de l'instruction for pour parcourir un tableau est un peu compliquée. Aujourd'hui, nous allons apprendre à utiliser l'instruction foreach pour parcourir un tableau et modifier les éléments du tableau. !

foreach est une instruction spécialement conçue pour parcourir des tableaux. C'est une méthode couramment utilisée pour parcourir des tableaux. Elle offre une grande commodité pour parcourir des tableaux. Après PHP5, vous pouvez également parcourir des objets (foreach ne peut être appliqué qu'aux tableaux et aux objets). (Pièce jointe : Explication vidéo de la fonction tableau de tableau de fonctions PHP)

L'instruction foreach traverse le tableau et n'a rien à voir avec l'indice du tableau, et peut être utilisée pour les tableaux d'index discontinus et les tableaux associatifs avec des chaînes comme indices.

analyse de l'instruction foreach

Jetons d'abord un coup d'œil à l'instruction foreach, qui a deux formats de syntaxe :

Format de grammaire 1 :

foreach ($array as $value){
    语句块;
}

Parcourt le $array code> donné. array, attribuez la valeur du tableau actuel à <code>$value dans chaque boucle. $array 数组,在每次循环中将当前数组的值赋给 $value

语法格式2:

foreach ($array as $key => $value){
    语句块;
}

遍历给定的 $array 数组,在每次循环中会将当前数组的值赋给 $value,键名赋给 $key

说明:

foreach语句在每次循环时,数组内部的指针会向前移一步,这样在下一次循环中会得到下一个数组元素,直到遍历到数组的末尾,停止遍历并退出循环。

foreach语句遍历和修改数组

了解了foreach语句的语法构成,接下来我们就来实际操作下,通过代码实例来具体看看foreach语句如何遍历数组。

实例1:

<?php
header("Content-type:text/html;charset=utf-8");
$array= array("香蕉","苹果","梨子","橙子","橘子","榴莲");
foreach ($array as $value) { 
    echo $value . "<br/>";
} 
?>

输出:

香蕉
苹果
梨子
橙子
橘子
榴莲

实例2:

<?php
header("Content-type:text/html;charset=utf-8");
$array= array("香蕉","苹果","梨子","橙子","橘子","榴莲");
foreach ($array as $key => $value) { 
    echo "键名为:".$key.",键值为:".$value . "<br/>";
} 
?>

输出:

Boucle PHP apprentissage quatre : Comment utiliser linstruction foreach pour parcourir et modifier les éléments dun tableau

遍历修改数组元素

一般情况下,使用foreach语句遍历数组时,是对数组的备份进行操作,一般不会影响数组本身。

例如:在循环内部修改数组,然后在循环外访问数组,会发现数组没有改变

<?php
header("Content-type:text/html;charset=utf-8");
$array= array(1,2,3,4,5,);
foreach ($array as $value) { 
    $value = $value*2;  // 元素值乘以2
}
var_dump($array)
?>

输出:

Boucle PHP apprentissage quatre : Comment utiliser linstruction foreach pour parcourir et modifier les éléments dun tableau

可以看出,数组元素没有发生变化。但有时候是需要通过循环来改变数组,那要怎么办?

可以采用引用循环(在 $value 之前加上 &,这样foreach语句会以引用赋值而不是拷贝一个值),那么在循环体内对数组进行操作,就会影响数组本身。

<?php
$array= array(1,2,3,4,5,);
foreach ($array as &$value) { 
    $value = $value*2;  // 元素值乘以2
}
var_dump($array)
?>

输出:

Boucle PHP apprentissage quatre : Comment utiliser linstruction foreach pour parcourir et modifier les éléments dun tableau

可以看出,在最后一个元素前,有一个&

Format de syntaxe 2 :

<?php
$array= array(1,2,3,4,5,);
foreach ($array as &$value) { 
    $value = $value*2;  // 元素值乘以2
}
unset($value); // 最后取消掉引用
var_dump($array)
?>

Parcourez le tableau $array donné et attribuez la valeur du tableau actuel à $value dans chaque boucle, saisissez le nom est attribué à $key. Boucle PHP apprentissage quatre : Comment utiliser linstruction foreach pour parcourir et modifier les éléments dun tableau

Explication : Instruction Foreach, chaque fois qu'elle boucle, le pointeur à l'intérieur du tableau avancera d'un pas, de sorte que l'élément suivant du tableau soit obtenu dans la boucle suivante, jusqu'à ce qu'il traverse jusqu'à la fin du tableau , arrête le parcours et quitte la boucle .

L'instruction foreach parcourt et modifie le tableau🎜🎜🎜🎜 Maintenant que nous comprenons la syntaxe de l'instruction foreach, faisons-le en pratique et voyons comment l'instruction foreach parcourt le tableau à travers des exemples de code. 🎜🎜🎜Instance 1 : 🎜🎜🎜rrreee🎜Sortie : 🎜rrreee🎜🎜Instance 2 : 🎜🎜rrreee🎜Sortie : 🎜🎜Boucle PHP apprentissage quatre : Comment utiliser linstruction foreach pour parcourir et modifier les éléments dun tableau🎜🎜🎜Traverser et modifier les éléments d'un tableau🎜🎜🎜Généralement, lorsque vous utilisez l'instruction foreach pour parcourir un tableau, une sauvegarde du le tableau est effectué Les opérations n'affectent généralement pas le tableau lui-même. 🎜🎜Par exemple : si vous modifiez le tableau à l'intérieur de la boucle puis accédez au tableau en dehors de la boucle, vous constaterez que le tableau n'a pas changé🎜rrreee🎜Sortie : 🎜🎜🎜Boucle PHP apprentissage quatre : Comment utiliser linstruction foreach pour parcourir et modifier les éléments dun tableau🎜🎜On peut voir que les éléments du tableau n'ont pas changé. Mais parfois, il est nécessaire de modifier le tableau via une boucle, alors que devons-nous faire ? 🎜🎜Vous pouvez utiliser une boucle de référence (ajouter & avant $value, afin que l'instruction foreach attribue une valeur par référence au lieu de copier une valeur), puis effectuez la opération de tableau dans le corps de la boucle L'opération affectera le tableau lui-même. 🎜rrreee🎜Sortie : 🎜🎜🎜Boucle PHP apprentissage quatre : Comment utiliser linstruction foreach pour parcourir et modifier les éléments dun tableau 🎜🎜On peut voir qu'il y a un & avant le dernier élément. En effet, la référence $value du dernier élément du tableau sera toujours conservée après la boucle foreach. Nous devons utiliser unset() pour le détruire. 🎜rrreee🎜Sortie : 🎜🎜🎜🎜🎜🎜🎜Recommandation : 🎜《🎜Résumé des questions d'entretien PHP (collection)🎜》《🎜Tutoriel vidéo PHP🎜》🎜

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