Array um Werte aus 2. Array erweitern

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

  • Array um Werte aus 2. Array erweitern

    Hallo Leute,

    ich bin noch typischer Anfänger und habe mal eine eine Frage zu dem erweitern von Arrays aus einem weiteren Array.

    Ich habe zwei Beispiel-Arrays:

    Code:
    $array1 = array(
        0 => array("a" => '123', "b" => 234),
        1 => array("a" => 'abs', "b" => 234),
        2 => array("a" => '123', "b" => 234),
        3 => array("a" => 'abs', "b" => 234),
        4 => array("a" => '123', "b" => 234),
        5 => array("a" => 'abs', "b" => 898),
        6 => array("a" => '123', "b" => 234),
        7 => array("a" => 'abs', "b" => 234),
        8 => array("a" => '123', "b" => 234),
        9 => array("a" => 'abs', "b" => 898)
        );
        
    
    $array2 = array(
        0 => array("b" => '234', "c" => "Herr"),
        1 => array("b" => '898', "c" => "Frau"),
        );
    Array 1 soll dabei um c erweitert werden, abhängig von dem Wert in b, welcher in beiden Arrays vorhanden ist. Zum Schluss soll Array 1 dann so aussehen:

    Code:
    $array3 = array(
        0 => array("a" => '123', "b" => 234, "c" => "Herr"),
        1 => array("a" => 'abs', "b" => 234, "c" => "Herr"),
        2 => array("a" => '123', "b" => 234, "c" => "Herr"),
        3 => array("a" => 'abs', "b" => 234, "c" => "Herr"),
        4 => array("a" => '123', "b" => 234, "c" => "Herr"),
        5 => array("a" => 'abs', "b" => 898, "c" => "Frau"),
        6 => array("a" => '123', "b" => 234, "c" => "Herr"),
        7 => array("a" => 'abs', "b" => 234, "c" => "Herr"),
        8 => array("a" => '123', "b" => 234, "c" => "Herr"),
        9 => array("a" => 'abs', "b" => 898, "c" => "Frau")
        );
    Gibt es in PHP7.x da schon einfache Möglichkeiten, dieses zu realisieren?

    Danke Euch im Vorraus

    Reiner

  • #2
    Es gibt array_merge_recursive(), aber das merged halt ohne Bedingung. Deine Anforderung geht aber auch über das Prinzip der Sprache hinaus, es ist deine Aufgabe als Programmierer die Logik so zu implementieren. Das ist aber an sich kein Problem, das sollte mit array_walk() recht einfach sein, du schreibst dir die Bedingung in der Closure halt selber und gibst das zweite Array per "use" mit. Dein zweites Array am besten vorher normalisieren und als key=>value wie z.B. 234=>Herr, anders macht das bei einer 1:1 Übersetzung ja auch keinen Sinn und du hast dann direkt den Index auf den du zugreifen kannst. Und gewöhn dir am besten schon mal an deine Variablen vernünftig zu bezeichnen, sonst steigst du irgendwann nicht mehr durch und das will auch sonst keiner lesen.
    Zuletzt geändert von chorn; 30.08.2019, 11:57.

    Kommentar

    Lädt...
    X