2012-04-12 7 views
0

Ich habe einen Post Array wie folgt:Neuformatierung des Post Array

[quantity] => Array 
    (
     [5] => 10 
     [23] => 20 
    ) 

[price] => Array 
    (
     [5] => 100.00 $ 
     [23] => 200.00 $ 
    ) 

[amount] => Array 
    (
     [5] => 1,000.00 $ 
     [23] => 4,000.00 $ 
    ) 

5 und 23 ist ID Produkt erhalten. Und ich brauche es zu konvertieren:

[5] => Array 
    (
     [quantity] => 10 
     [price] => 100.00 $ 
     [amount] => 1,000.00 USD 
    ) 
[23] = => Array 
    (
     [quantity] => 20 
     [price] => 200.00 $ 
     [amount] => 4,000.00 USD 
    ) 

Wie kann ich dies effizient erreichen, so dass sie bereit sein für mysql einfügen?

+3

@Repox, 'foreach ($ post wie $ input_key => $ input_values) { foreach ($ input_values ​​as $ Feld => $ value) { $ tmp [$ field] [$ input_key] = $ value; } } 'und ehrlich gesagt funktioniert es, aber ich will nur wissen, ob es der beste Weg ist. –

+0

@yahyaE wenn das funktioniert, sieht es gut für mich aus. – MakuraYami

+1

Die Lösungen scheinen vernünftig - kurz und einfach. Ich mag das. – Repox

Antwort

0

Gehen Sie durch eines dieser Arrays, erwerben IDs und rekonstruieren.

Beispiel:

// YOUR DATA 
$quantity = array(); 
$price = array(); 
$amount = array(); 

// NEW ARRAY 
$array = array(); 

foreach ($quantity as $id => $itemQty) { 
    $itemPrice = $price[$id]; 
    $itemAmount = $amount[$id]; 
    $array[$id] = array("quantity" => $itemQty, "amount" => $itemAmount, "price" => $itemPrice); 
} 

Jetzt haben Sie Ihre Daten in $ Array sortiert, wie Sie wollen.

+0

Vielen Dank für Ihren Kommentar. Ich denke hier, ich werde erwartet, Array oder "$ quantity = $ post ['Quantity']" aufzulösen wird fortgesetzt werden? –

+0

Wenn Sie $ quantity = $ _POST ['Menge'] bedeuten; Dann ja. Aber vergiss nicht, auch die anderen 2 Arrays zu erwerben. – castor

+1

:) Ja, mein Fehler also in meinem Code, $ post = $ _ [POST] '. Vielen Dank. –

0
$quantity = array(5=>10,23=>20); 
$price = array(5=>'100.00$',23=>'200.00$'); 
$amount = array(5=>'1000.00$',23=>'4000.00$'); 

$newData = array_map(null, $quantity, $price,$amount); 
$newKeys = array_keys($quantity); 
$data  = array_combine($newKeys,$newData); 

echo('<pre>'); 
print_r($data); 

Aber das Array muss bestellt werden!

+0

Haben Sie es selbst getestet? –