PHP merge_array()

Geschrieben von PHPFlüsterer am 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…

 

Danke

Sag "Danke" in dem du diesen Artikel flatterst und mich so bei meiner zukünftigen Arbeit unterstützt. Ich danke dir!
 

Teilen

Teile diesen Artikel und somit dein Wissen mit deinen Freunden, Kollegen und anderen ...
 

Kommentare

Zu "PHP merge_array()" wurde noch kein Kommentar abgegeben. Mache doch den ersten Schritt und hinterlasse Lob, Kritik, Feedback oder auch nur einen Kommentar ....
 

Verfasse einen Kommentar


Fülle dazu einfach die als "Pflichtfeld" gekennzeichneten Felder aus, schreibe deinen Kommentar und sende alles zusammen ab. Nach Freischaltung durch mich, wird dein Kommentar für alle sichtbar.

Kleiner Tip: Die Pflichtfelder erkennt man auch an einem orange-farbenen Stern!
Pflichtfeld
Pflichtfeld    (wird NICHT veröffentlicht)
Pflichtfeld
Ich möchte eine E-Mail-Benachrichtigung bei Antworten und neuen Kommentaren erhalten.
Möchtest du lediglich bei neuen Kommentaren benachrichtigt werden ohne einen Kommentar zu verfassen? Dann klicke hier.  Um deine Benachrichtigungen zu verwalten hier.
*

 

Trackbacks

Es gibt keine Trackbacks zu diesem Artikel.

 

Verwandte Artikel


Scheinbar hast du einen Werbeblocker aktiviert. Die Werbung ist neben Flattr allerdings die einzige Möglichkeit die Betriebskosten (z. B. Hosting, Domain ...) aufzufangen. Es wäre nett wenn du den Blocker auf meinen Seiten deaktivierst.