Heim > Artikel > Backend-Entwicklung > Warum verwendet PHP die Methode array_combine, um das ursprüngliche Array zu beeinflussen?
Bitte schauen Sie sich den folgenden Code an:
Vor der Verarbeitung gibt es zwei Arrays arrTitle
und arrHref
,
Der Inhalt von arrTitle
ist wie folgt:
arrHref
Der Inhalt ist wie folgt:
<code class="php">//将title数组中首元素取出,作为栏目标题 foreach ($arrTitle as &$title) { $text [] = $title[0]; unset($title[0]); } //将href数组中首元素取出,作为栏目url foreach ($arrHref as &$href) { $url [] = $href[0]; unset($href[0]); } print_r($arrTitle); //重新组织title项 $title = array_combine($text, $url); print_r($arrTitle);die;</code>
Führen Sie den obigen PHP-Code aus, um das erste Element jedes Elements in Titel und href zu extrahieren und zu entfernen. Vor der Ausführung von array_combine
sieht $arrTitle
jedoch so aus:
Nach der Ausführung von
sieht array_combine
jedoch wie folgt aus: $arrTitle
Warum wird das letzte Element von
das Ergebnis von $arrTitle
, aber die array_combine()
-Funktion ändert array_combine()
nicht? $arrTitle
Vor der Verarbeitung gibt es zwei Arrays
und arrTitle
,arrHref
ist wie folgt: arrTitle
Der Inhalt ist wie folgt:arrHref
<code class="php">//将title数组中首元素取出,作为栏目标题 foreach ($arrTitle as &$title) { $text [] = $title[0]; unset($title[0]); } //将href数组中首元素取出,作为栏目url foreach ($arrHref as &$href) { $url [] = $href[0]; unset($href[0]); } print_r($arrTitle); //重新组织title项 $title = array_combine($text, $url); print_r($arrTitle);die;</code>Führen Sie den obigen PHP-Code aus, um das erste Element jedes Elements in Titel und href zu extrahieren und zu entfernen. Vor der Ausführung von
sieht array_combine
jedoch so aus
$arrTitle
Nach der Ausführung von
sieht jedoch wie folgt aus: array_combine
$arrTitle
Warum wird das letzte Element von
das Ergebnis von, aber die $arrTitle
-Funktion ändert array_combine()
nicht? array_combine()
$arrTitle
$title hat hier denselben Namen wie $title in der Schleife oben, ändern Sie einfach den Namen. In PHP gibt es keinen Blockbereich.
<code>**$title** = array_combine($text, $url); </code>
Dieser Fehler wurde behoben. Vielen Dank an @whyreal für den Hinweis auf das Problem mit dem doppelten Namen.
Da in der foreach-Schleife das Array mit
durchlaufen wird, zeigt am Ende der Schleife auf den letzten Satz von Elementen von 引用方式
. $title
$arrTitle
Da PHP keinen Gültigkeitsbereich auf Blockebene hat, ändert $title nach $title = array_combine($arr1, $arr2) auch die letzte Gruppe von Elementen des
$arrTitle
Ändern Sie den Namen nach