zwei Arrays zusammenführen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • zwei Arrays zusammenführen

    Hallo,

    ich habe zwei Arrays:

    $a = array('jobid'=>123, 'loader'=>array('name'=>'rip-loader', 'state'=>'ok'));
    $b = array('loader'=>array('state'=>'error', 'msg'=>'an error occured'));

    und möchte diese zusammenführen (mergen). Jetzt sollen aber nur vorhandene Schlüssel im Array $b gleichnamige in $a ersetzten, bzw. neu erstellen, quasi hinzufügen.

    Im obigen Beispiel heisst das ich erwarte als Resultat:

    $c =
    array(
    'jobid' => 123,
    'loader' => array(
    'name' => 'rip-loader',
    'state' => 'error',
    'msg' => 'an error occured')
    );

    Mit den gängigen array_.... Befehlen scheint mir das nicht zu machen zu sein.
    Hat jemand einen Vorschlag oder habe ich was übersehen?

  • #2
    Re: zwei Arrays zusammenführen

    Original geschrieben von Dr.Speck
    Hat jemand einen Vorschlag
    foreach+isset+rekursive Funktion

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      Schade, ich dachte ich hätte wirklich eine Funktion übersehen :-)

      Ist das so okay?:

      PHP-Code:
      function truemerge($a$b) {
        foreach (
      $b as $key => $value) {
          if (
      is_array($value)) {
            
      $a[$key] = mergejob($a[$key], $value);
          } else {
            
      $a[$key] = $value;
          }
        }
        return 
      $a;
      }

      $c truemerge($a$b); 
      Hmm, wie ist das mit Referenzen. Würde es nicht Sinn machen Refs auf die Arrays zu übergeben anstatt kopien?
      Wie mach ich das nur, habe noch nicht viel damit gemacht...
      Irgendwie so: truemerge(&$a, $b);
      Zuletzt geändert von Dr.Speck; 12.09.2007, 14:05.

      Kommentar

      Lädt...
      X