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/>"; } ?>
输出:
遍历修改数组元素
一般情况下,使用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) ?>
输出:
可以看出,数组元素没有发生变化。但有时候是需要通过循环来改变数组,那要怎么办?
可以采用引用循环(在$value
之前加上&
,这样foreach语句会以引用赋值而不是拷贝一个值),那么在循环体内对数组进行操作,就会影响数组本身。
<?php $array= array(1,2,3,4,5,); foreach ($array as &$value) { $value = $value*2; // 元素值乘以2 } var_dump($array) ?>
输出:
可以看出,在最后一个元素前,有一个&
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.
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: rrreeeAusgabe: rrreeeInstanz 2: rrreeeAusgabe:&
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. rrreeeAusgabe:
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. rrreeeAusgabe: 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!