PHP’s Array-Funktionen
Geschrieben von Benjamin Carl am Dienstag, den 15. Dezember 2009
PHP bringt bis einschließlich Version 5.3 sage und schreibe 77 dokumentierte Array-Funktionen mit und mit keiner lässt sich diese einfache Operation durchführen:
Verschmelze (merge) zwei Arrays
Nehme das erste Array ($array_1) als Ziel (zu ergänzendes Array)
Nehme das zweite Array ($array_2) als Quelle (ergänzendes Array)
Wobei kein komplettes Ersetzen eines Keys erfolgen soll, bei Vorhandensein doppelter Keys sollen die Werte aus dem zweiten Array ($array_2) in das erste überführt werden.
Neue Inhalte (Keys) sollen aus dem zweiten Array in das erste überführt werden.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | function merge_array(array $array_1, array $array_2) { // iterate over array which overwrites/supplements array_1 foreach ($array_2 as $key => $value) { // check if element is an array or a value if (is_array($array_2[$key])) { if (!isset($array_1[$key])) { // if key does not exist - just set it $array_1[$key] = $array_2[$key]; } else { // if key allready exist - start recursion $array_1[$key] = merge_array($array_1[$key], $array_2[$key]); } } else { // values could be stored directly $array_1[$key] = $array_2[$key]; } } // return the new merged array return $array_1; } |
Das war der erste Schuss. Aber die Frage bleibt, warum fehlt so etwas? Ich kann doch nicht der erste sein, der diese Funktionalität braucht…
Einen Kommentar schreiben
Kategorie: HowTo's, Tipps + Tricks




