PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   Array um Werte aus 2. Array erweitern (https://www.php-resource.de/forum/php-developer-forum/106710-array-um-werte-aus-2-array-erweitern.html)

rebelhig 28-08-2019 15:04

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

chorn 30-08-2019 11:51

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.


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:17 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG