Heim >Backend-Entwicklung >PHP-Problem >So ändern Sie den Array-Wert in PHP foreach

So ändern Sie den Array-Wert in PHP foreach

藏色散人
藏色散人Original
2020-07-31 09:36:204488Durchsuche

So ändern Sie den Array-Wert in PHP foreach: Erstellen Sie zunächst eine PHP-Code-Beispieldatei und übergeben Sie dann „foreach($array as $k => $v){ $array[$k] = 1; }" Methode zum Ändern des Array-Werts.

So ändern Sie den Array-Wert in PHP foreach

Empfohlen: „PHP-Video-Tutorial

Das Problem der Verwendung von foreach zum Ändern des Werts von ein Array in PHP

Schlagen Sie die Seite „foreach“ der PHP-Dokumentation auf und dort heißt es:

„Die foreach-Syntaxstruktur bietet eine einfache Möglichkeit, Arrays zu durchlaufen. foreach kann nur angewendet werden Wenn Sie es auf Variablen anderer Datentypen oder nicht initialisierte Variablen anwenden, gibt es zwei Syntaxen:

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

Das erste Format durchläuft das angegebene array_expression-Array bei jeder Schleife, die $value zugewiesen wird und der interne Zeiger des Arrays wird um einen Schritt vorwärts bewegt (damit die nächste Zelle in der nächsten Schleife erhalten wird)

Das zweite Format macht dasselbe, außer dass der Schlüsselname der aktuellen Zelle angezeigt wird wird in jeder Schleife auch der Variablen $key zugewiesen. Dann wird das erste Format dem angegebenen array_expression-Array zugewiesen auf $value und der Zeiger innerhalb des Arrays bewegt sich einen Schritt vorwärts (das nächste Element wird also in der nächsten Schleife abgerufen) „Was bedeutet das?“ Dies bedeutet, dass die Verwendung von foreach zum Durchlaufen eines Arrays eine Kopie des angegebenen Arrays und nicht das Array selbst bearbeitet. Genauso wie wenn man einen Klon von sich selbst hat, egal wie andere den Klon von dir schlagen oder treten, es wird keine Auswirkungen auf dich haben.

Zum Beispiel:

foreach($array as $k => $v){
  $v = 1;
}

Eine solche Änderungsmethode ändert nicht $array selbst, sondern modifiziert ein Array, das es kopiert. Obwohl es dasselbe ist, ist es nicht $array Keine Auswirkung auf $array.

Was also tun? Gehen Sie dazu folgendermaßen vor:

foreach($array as $k => $v){
  $array[$k] = 1;
}

Obwohl $k wie $v kopiert wird, ist der Wert von $k, der kopiert wird, immer noch derselbe wie der Wert von $k im ursprünglichen Array, sodass dies erfolgreich sein wird.

Es gibt auch eine fortgeschrittenere Methode: Sie können die Elemente des Arrays einfach ändern, indem Sie & vor $v hinzufügen. Diese Methode weist einen Wert per Referenz zu, anstatt ihn zu kopieren. Zum Beispiel:

foreach($array as &$v){
  $v = 1;
}
unset($v); // 最后取消掉引用

Das wird erfolgreich sein.

Das obige ist der detaillierte Inhalt vonSo ändern Sie den Array-Wert in PHP foreach. 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