ottscho
Goto Top

Array zusammenführen

Hallo,

ich habe 3 Array, welche ich gerne zusammenführen würde.

order$

array(4) {
["orderID"]=> string(3) "164"
["ordernumber"]=> string(5) "20027"
["order_number"]=> string(5) "20027"
["userID"]=> string(1) "1" }

postion$

array(2) {
["positionID"]=> string(1) "1"
["number"]=> string(5) "11111" }

user$

array(2) {
["userID"]=> string(2) "50"
["namer"]=> string(4) "Carl" }

Mache ich das nun mit array_merge so erhalte ich dies:
array(4) {
["orderID"]=> string(3) "164"
["ordernumber"]=> string(5) "20027"
["order_number"]=> string(5) "20027"
["userID"]=> string(1) "1" }
array(2) {
["positionID"]=> string(1) "1"
["number"]=> string(5) "11111" }
array(2) {
["userID"]=> string(2) "50"
["namer"]=> string(4) "Carl" }

Sozusagen 3 Array's in einem. Was ich aber nicht will.
Ich hätte es gerne komplett in einem Array so:

array(8) {
["orderID"]=> string(3) "164"
["ordernumber"]=> string(5) "20027"
["order_number"]=> string(5) "20027"
["userID"]=> string(1) "1"
["positionID"]=> string(1) "1"
["number"]=> string(5) "11111"
["userID"]=> string(2) "50"
["namer"]=> string(4) "Carl" }

Könnt ihr mir weiterhelfen?

Danke

Content-ID: 169639

Url: https://administrator.de/forum/array-zusammenfuehren-169639.html

Ausgedruckt am: 22.12.2024 um 21:12 Uhr

Arano
Arano 13.07.2011 um 11:47:23 Uhr
Goto Top
Hi Ottscho

Hm... laut PHP-Manual - array_merge() sollte es doch genau so funktionieren !?

Am besten du kontrollierst noch einmal mit print_r() und/oder var_dump() die Inhalte der Variablen und poste doch auch mal das Stück PHP-Script mit dem du es versucht hast !


~Arano
ottscho
ottscho 13.07.2011 um 12:02:18 Uhr
Goto Top
Hey Arano,

hier der Code und darunter dann die Asugabe

		// Hauptdaten der Bestellung
		$order = current($export->sGetOrders(array("orderID"=>$orderID)));  
		var_dump($order );
		print_r ("<br />");  
		print_r ("<br />");		  

		// Bestellpositionen
		$positions = $export->sOrderDetails(array("orderID"=>$orderID));  
		var_dump($positions);
		print_r ("<br />");  
		print_r ("<br />");  

		// Kundendaten
		$user = $export->sOrderCustomers (array("orderID"=>$orderID));  
		var_dump($user );
		print_r ("<br />");  
		print_r ("<br />");  
		print_r ("<br />");  

 		$result = array_merge($order, $positions, $user);
		var_dump($result);
		exit;

array(37) { ["orderID"]=> string(3) "171" ["ordernumber"]=> string(5) "20029" ["order_number"]=> string(5) "20029" ["userID"]=> string(1) "1" ["customerID"]=> string(1) "1" ["invoice_amount"]=> string(5) "52.95" ["invoice_amount_net"]=> string(5) "44.49" ["invoice_shipping"]=> string(1) "3" ["invoice_shipping_net"]=> string(4) "2.52" ["ordertime"]=> string(19) "2011-07-13 12:01:13" ["status"]=> string(1) "0" ["statusID"]=> string(1) "0" ["cleared"]=> string(2) "17" ["clearedID"]=> string(2) "17" ["paymentID"]=> string(1) "5" ["transactionID"]=> string(0) "" ["comment"]=> string(0) "" ["customercomment"]=> string(0) "" ["net"]=> string(1) "0" ["netto"]=> string(1) "0" ["partnerID"]=> string(0) "" ["temporaryID"]=> string(0) "" ["referer"]=> string(0) "" ["cleareddate"]=> string(19) "0000-00-00 00:00:00" ["cleared_date"]=> string(19) "0000-00-00 00:00:00" ["trackingcode"]=> string(0) "" ["language"]=> string(2) "de" ["currency"]=> string(3) "EUR" ["currencyFactor"]=> string(1) "1" ["subshopID"]=> string(1) "1" ["dispatchID"]=> string(1) "9" ["currencyID"]=> string(1) "1" ["cleared_description"]=> string(5) "Offen" ["status_description"]=> string(5) "Offen" ["payment_description"]=> string(8) "Vorkasse" ["dispatch_description"]=> string(14) "Normal Versand" ["currency_description"]=> string(4) "Euro" }

array(1) { [183]=> array(18) { ["orderdetailsID"]=> string(3) "183" ["orderID"]=> string(3) "171" ["ordernumber"]=> string(5) "20029" ["articleID"]=> string(2) "13" ["articleordernumber"]=> string(11) "SW2001_6558" ["price"]=> string(5) "49.95" ["quantity"]=> string(1) "1" ["invoice"]=> string(5) "49.95" ["name"]=> string(20) "Melamin Schale Weiss" ["status"]=> string(1) "0" ["shipped"]=> string(1) "0" ["shippedgroup"]=> string(1) "0" ["releasedate"]=> string(10) "0000-00-00" ["modus"]=> string(1) "0" ["esdarticle"]=> string(1) "0" ["taxID"]=> string(1) "1" ["tax"]=> string(2) "19" ["esd"]=> string(1) "0" } }


Ich glaube ich hab den Fehler gefunden.
So sollte es gehen:

 		$result = array_merge($order, $positions[183], $user[171]);
ottscho
ottscho 13.07.2011 um 12:14:09 Uhr
Goto Top
Hab gelöst face-smile Danke dir.

$result = $order;

foreach ($positions as $position) {

	$result = array_merge($result , $position);

}

foreach ($user as $v_user) {

	$result = array_merge($result , $v_user);

}
Arano
Arano 13.07.2011 um 12:22:51 Uhr
Goto Top
Hi

Ja super... habe ja nicht viel gemacht *g*

Dürfte das nicht auch so gehen !?
$result = array_merge($order, current($positions), $user[$orderID]); 


~Arano

Kannst den Beitrag dann ja auf gelöst setzen.
Snowman25
Snowman25 13.07.2011 um 12:23:00 Uhr
Goto Top
Hallo @ottscho,

lösche bitte alle persönlichen Daten in deinem Post. Da kann man ja Name und Adresse direkt rauslesen.
Entweder, du nimmst die Array-Ausgabe wieder raus, oder du X't die Namen und Daten aus.

Gruß
@Snowman25