Stellen Sie assoziative Array-Elemente einem assoziativen Array voran
Lesezeit: 3 Minuten
Colin Rock
Ist es möglich, einem assoziativen Array wörtliche Schlüssel=>Wert-Paare voranzustellen? Ich weiß, dass array_unshift() mit numerischen Schlüsseln funktioniert, aber ich hoffe auf etwas, das mit wörtlichen Schlüsseln funktioniert.
@cletus: Meine Güte. Ja, ich kann. Ich bin mir nicht sicher, was mich glauben ließ, dass ich es nicht könnte oder was vorher nicht funktioniert hat. Danke für die Antwort.
– Colin Brock
3. September 2009 um 1:36 Uhr
Es ist erwähnenswert, den Unterschied zu beachten, aber dieser Unterschied ist für die Erhaltung numerischer Schlüssel relevant, und dieses Array ist ein “reines” assoziatives Array mit Zeichenfolgenschlüsseln.
– Kletus
3. September 2009 um 1:37 Uhr
PHPguru
Sie können einem assoziativen Array nicht direkt ein Schlüssel-Wert-Paar voranstellen.
Sie können jedoch mit dem Union-Operator ein neues Array erstellen, das das neue Schlüssel-Wert-Paar am Anfang des Arrays enthält +. Das Ergebnis ist jedoch ein völlig neues Array, und das Erstellen des neuen Arrays hat eine O(n)-Komplexität.
Hinweis: Verwenden Sie nicht array_merge(). array_merge() überschreibt Schlüssel und behält keine numerischen Schlüssel bei.
“überschreibt Schlüssel und behält numerische Schlüssel nicht bei” … a) Wie behandelt der Union-Operator (“+”) “doppelte” Schlüssel? Betreff: Zifferntasten nicht beibehalten: wahrscheinlich erwünscht
– Brad Kent
28. Mai 2019 um 2:35 Uhr
In Ihrer Situation möchten Sie array_merge() verwenden:
Ab PHP 5.4 können Sie auch die kurze Array-Syntax verwenden, die array() durch ersetzt [].
karim79
@Cletus ist genau richtig. Nur um hinzuzufügen, wenn die Reihenfolge der Elemente in den Eingabearrays nicht eindeutig ist und Sie das letzte Array sortieren müssen, möchten Sie dies vielleicht tun ksort:
Als Nachtrag, ksort gibt boolean zurück, also muss das Obige als zwei Anweisungen ausgeführt werden, nicht als eine, z $a = $array1 + $array2; ksort($a);Andernfalls $resulting_array wird ein boolescher Wert sein, nicht das Array, das Sie erwartet haben.
– El Yobo
17. Oktober 2011 um 22:39 Uhr
Tobi Allen
Wenn Sie Laravel verwenden, können Sie Prepend für eine Sammlungsinstanz verwenden
Als Nachtrag, ksort gibt boolean zurück, also muss das Obige als zwei Anweisungen ausgeführt werden, nicht als eine, z $a = $array1 + $array2; ksort($a);Andernfalls $resulting_array wird ein boolescher Wert sein, nicht das Array, das Sie erwartet haben.
– El Yobo
17. Oktober 2011 um 22:39 Uhr
14342500cookie-checkStellen Sie assoziative Array-Elemente einem assoziativen Array voranyes
Siehe auch: Unterschiede zwischen array_replace() und array_merge() und + (array union operator)
– mickmackusa
10. November um 22:48 Uhr