Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Loop-Lernen vier: So verwenden Sie die foreach-Anweisung zum Durchlaufen und Ändern von Array-Elementen

PHP-Loop-Lernen vier: So verwenden Sie die foreach-Anweisung zum Durchlaufen und Ändern von Array-Elementen

青灯夜游
青灯夜游Original
2021-07-29 14:03:465478Durchsuche

Im vorherigen Artikel „PHP-Loop-Lernen 3: So verwenden Sie die for-Schleifen-Anweisung zum Durchlaufen eines Arrays“ haben wir Sie mit der for-Schleifen-Anweisung vertraut gemacht, den Ausführungsprozess der for-Schleifen-Anweisung analysiert und die Verwendung vorgestellt der for-Schleifenanweisung durch Codebeispiele Methode zum Durchlaufen eines Arrays. Die Methode zum Durchlaufen eines Arrays mit der for-Anweisung ist etwas kompliziert. Heute lernen wir, wie man mit der foreach-Anweisung ein Array durchläuft und die Elemente im Array ändert. !

foreach ist eine Anweisung, die speziell zum Durchlaufen von Arrays entwickelt wurde. Sie bietet großen Komfort beim Durchlaufen von Arrays (foreach kann nur auf Arrays und Objekte angewendet werden). (Anhang: Videoerklärung zur Array-Array-Funktion der PHP-Funktion)

Die foreach-Anweisung durchläuft das Array und hat nichts mit dem Array-Index zu tun. Sie kann für diskontinuierliche Indexarrays und assoziative Arrays mit Zeichenfolgen als Indizes verwendet werden.

foreach-Anweisungsanalyse

Werfen wir zunächst einen Blick auf die foreach-Anweisung, die zwei Syntaxformate hat:

Grammatikformat 1:

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

Traverse das angegebene $array code> Array, weisen Sie in jeder Schleife den Wert des aktuellen Arrays <code>$value zu. $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/>";
} 
?>

输出:

PHP-Loop-Lernen vier: So verwenden Sie die foreach-Anweisung zum Durchlaufen und Ändern von Array-Elementen

遍历修改数组元素

一般情况下,使用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)
?>

输出:

PHP-Loop-Lernen vier: So verwenden Sie die foreach-Anweisung zum Durchlaufen und Ändern von Array-Elementen

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

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

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

输出:

PHP-Loop-Lernen vier: So verwenden Sie die foreach-Anweisung zum Durchlaufen und Ändern von Array-Elementen

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

Syntaxformat 2:

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

Durchlaufen Sie das angegebene $array-Array und weisen Sie den Wert des aktuellen Arrays $value in jeder Schleife zu, Schlüssel Der Name ist $key zugewiesen. PHP-Loop-Lernen vier: So verwenden Sie die foreach-Anweisung zum Durchlaufen und Ändern von Array-Elementen

Erklärung: Foreach-Anweisung: Bei jeder Schleife bewegt sich der Zeiger innerhalb des Arrays einen Schritt vorwärts, sodass das nächste Array-Element in der nächsten Schleife abgerufen wird, bis er zum Ende des Arrays gelangt , stoppt die Durchquerung und verlässt die Schleife.

Die foreach-Anweisung durchläuft und ändert das Array🎜🎜🎜🎜 Nachdem wir nun die Syntax der foreach-Anweisung verstanden haben, machen wir es in der Praxis und sehen anhand von Codebeispielen, wie die foreach-Anweisung das Array durchläuft. 🎜🎜🎜Instanz 1: 🎜🎜🎜rrreee🎜Ausgabe: 🎜rrreee🎜🎜Instanz 2: 🎜🎜rrreee🎜Ausgabe: 🎜🎜🎜🎜🎜Array-Elemente durchqueren und ändern🎜🎜🎜Im Allgemeinen wird bei Verwendung der foreach-Anweisung zum Durchlaufen eines Arrays eine Sicherung des erstellt Das Array wird ausgeführt. Vorgänge wirken sich im Allgemeinen nicht auf das Array selbst aus. 🎜🎜Zum Beispiel: Wenn Sie das Array innerhalb der Schleife ändern und dann auf das Array außerhalb der Schleife zugreifen, werden Sie feststellen, dass sich das Array nicht geändert hat🎜rrreee🎜Ausgabe: 🎜🎜🎜PHP-Loop-Lernen vier: So verwenden Sie die foreach-Anweisung zum Durchlaufen und Ändern von Array-Elementen🎜🎜Es ist ersichtlich, dass sich die Array-Elemente nicht geändert haben. Aber manchmal ist es notwendig, das Array durch eine Schleife zu ändern. Was sollen wir also tun? 🎜🎜Sie können eine Referenzschleife verwenden (fügen Sie & vor $value hinzu, damit die foreach-Anweisung einen Wert per Referenz zuweist, anstatt einen Wert zu kopieren), und führen Sie dann die Schleife aus Array-Operation im Schleifenkörper Die Operation wirkt sich auf das Array selbst aus. 🎜rrreee🎜Ausgabe: 🎜🎜🎜PHP-Loop-Lernen vier: So verwenden Sie die foreach-Anweisung zum Durchlaufen und Ändern von Array-Elementen 🎜🎜Es ist ersichtlich, dass vor dem letzten Element ein & steht. Das liegt daran, dass die $value-Referenz des letzten Elements des Arrays nach der foreach-Schleife weiterhin erhalten bleibt. Wir müssen unset() verwenden, um es zu zerstören. 🎜rrreee🎜Ausgabe: 🎜🎜🎜🎜🎜🎜🎜Empfehlung: 🎜《🎜Zusammenfassung der PHP-Interviewfragen (Sammlung)🎜》《🎜php-Video-Tutorial🎜》🎜

Das obige ist der detaillierte Inhalt vonPHP-Loop-Lernen vier: So verwenden Sie die foreach-Anweisung zum Durchlaufen und Ändern von Array-Elementen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn