Heim  >  Artikel  >  Backend-Entwicklung  >  Warum verwendet PHP die Methode array_combine, um das ursprüngliche Array zu beeinflussen?

Warum verwendet PHP die Methode array_combine, um das ursprüngliche Array zu beeinflussen?

WBOY
WBOYOriginal
2016-08-04 09:19:291412Durchsuche

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:

Warum verwendet PHP die Methode array_combine, um das ursprüngliche Array zu beeinflussen?

arrHrefDer Inhalt ist wie folgt:

Warum verwendet PHP die Methode array_combine, um das ursprüngliche Array zu beeinflussen?

<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:

Warum verwendet PHP die Methode array_combine, um das ursprüngliche Array zu beeinflussen?

Nach der Ausführung von

sieht array_combine jedoch wie folgt aus: $arrTitle

Warum verwendet PHP die Methode array_combine, um das ursprüngliche Array zu beeinflussen?

Warum wird das letzte Element von

das Ergebnis von $arrTitle, aber die array_combine()-Funktion ändert array_combine() nicht? $arrTitle

Antwortinhalt:

Bitte schauen Sie sich den folgenden Code an:

Vor der Verarbeitung gibt es zwei Arrays

und arrTitle,arrHref

Der Inhalt von

ist wie folgt: arrTitle

Warum verwendet PHP die Methode array_combine, um das ursprüngliche Array zu beeinflussen?

Der Inhalt ist wie folgt:arrHref

Warum verwendet PHP die Methode array_combine, um das ursprüngliche Array zu beeinflussen?

<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

Warum verwendet PHP die Methode array_combine, um das ursprüngliche Array zu beeinflussen?Nach der Ausführung von

sieht

jedoch wie folgt aus: array_combine $arrTitle

Warum verwendet PHP die Methode array_combine, um das ursprüngliche Array zu beeinflussen?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 $arrTitleDa PHP keinen Gültigkeitsbereich auf Blockebene hat, ändert $title nach $title = array_combine($arr1, $arr2) auch die letzte Gruppe von Elementen des

, auf das es verweist, was zu einem Fehler führt .

$arrTitleÄndern Sie den Namen nach

, um diesen Fehler zu beheben.

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