2017-05-29 217 views
-3

我已經創建了以下數組。但這不是我想要的。有助於從中創建一個新的陣列來滿足我的要求。從多個多維數組中創建一個數組php

Array (
[supplier_id] => 1 
[filter_name] => Array 
    (
     [0] => product 1 
     [1] => Product 2 
     [2] => Product 3 
    ) 

[quantity] => Array 
    (
     [0] => 3 
     [1] => 10 
     [2] => 2 
    ) 

[unit] => Array 
    (
     [0] => pkts 
     [1] => ltrs 
     [2] => pkts 
    ) 

[price] => Array 
    (
     [0] => 11 
     [1] => 100 
     [2] => 10 
    ) 

[gross_amount] => Array 
    (
     [0] => 33 
     [1] => 1000 
     [2] => 20 
    ) 

[vat] => Array 
    (
     [0] => 0 
     [1] => 0 
     [2] => 0 
    ) 

[net_amount] => Array 
    (
     [0] => 33 
     [1] => 1000 
     [2] => 20 
    )) 

這是我想要的數組。有沒有想法創建這種類型的數組。

Array(
[supplier_id] = 1 
[0] = Array(
    [filter_name] => product 1 
    [quantity] => 3 
    [unit] => pkts 
    [price] => 11 
    [gross_amount] => 33 
    [vat] => 0 
    [net_amount] => 33 
) 
[1] = Array(
    [filter_name] => product 2 
    [quantity] => 10 
    [unit] => ltrs 
    [price] => 100 
    [gross_amount] => 1000 
    [vat] => 0 
    [net_amount] => 1000 
) 

[2] = Array(
    [filter_name] => product 3 
    [quantity] => 2 
    [unit] => pkts 
    [price] => 10 
    [gross_amount] => 20 
    [vat] => 0 
    [net_amount] => 20 
)) 
+0

理念 - 用'foreach' –

+0

你嘗試了什麼? – Akintunde007

+1

您可以發佈您的腳本以幫助我們瞭解數據來自何處以及您如何嘗試轉換數據?正如@u_mulder所說,「foreach」可能是一個好的開始。 – vchabot

回答

1

我想這應該幫助你,我假設有你的子陣中最大的3個值,所以我用while($i<3);

$i = 0; 
    $newArray = array(); 
    do{ 
    foreach($arr as $key=>$val){ 
     if($key == 'supplier_id'){ 
      $newArray[$key] = $val; 
     }else{ 
      $newArray[$i][$key] = $val[$i]; 
     } 

    } 
    $i++; 
    }while($i<3); 
    echo "<pre>"; print_r($newArray); 

Check Output here

+0

謝謝你。這幫了我很多。再次感謝。 –

+0

很高興幫助:) – Bhaskar