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

benjamin carl

Software-Architekt mit Fokus auf          liest gerade


  • prof.Softwareentwicklung mit PHP
  • test-driven development (TDD)
  • Qualitätssicherung
  • Automatisierung + Standardisierung
    von Entwicklungsprozessen
Get Adobe Flash playerPlugin by wpburn.com wordpress themes