2017-05-29 186 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