2016-05-31 73 views
0

我创建一个这样的数组:PHP创建multidimensioanal阵列

$result[$buyid.'_'.$freeid] = array(
    'itemquantity' => $v, 
    'buyproduct' => $_POST['buyproduct'][$k], 
    'buyproductid' => $buyid, 
    'freequantity' => $_POST['freequantity'][$k], 
    'freeproduct' => $_POST['freeproduct'][$k], 
    'freeproductid' => $freeid, 
); 

,输出我的数组是这样的:

Array(
[53_53] => Array 
    (
     [itemquantity] => 5 
     [buyproduct] => 
     [buyproductid] => 53 
     [freequantity] => 1 
     [freeproduct] => 
     [freeproductid] => 53 
    ) 

[53_38] => Array 
    (
     [itemquantity] => 2 
     [buyproduct] => 
     [buyproductid] => 53 
     [freequantity] => 1 
     [freeproduct] => 
     [freeproductid] => 38 
    ) 

[31_31] => Array 
    (
     [itemquantity] => 5 
     [buyproduct] => 
     [buyproductid] => 31 
     [freequantity] => 1 
     [freeproduct] => 
     [freeproductid] => 31 
    ) 

我想保存我的数据略不同。我想基于“buyproductid”来存储它。所以如果有多个“buyproductid”,它就创建一个子数组。事情是这样的:

Array(
[53] => Array(
    [53] => Array(
     [itemquantity] => 5 
     [buyproduct] => 
     [buyproductid] => 53 
     [freequantity] => 1 
     [freeproduct] => 
     [freeproductid] => 53 
    ), 
    [38] => Array(
     [itemquantity] => 5 
     [buyproduct] => 
     [buyproductid] => 53 
     [freequantity] => 1 
     [freeproduct] => 
     [freeproductid] => 53 
    ) 

),

[31] => Array(
    [31] => Array(
     [itemquantity] => 5 
     [buyproduct] => 
     [buyproductid] => 31 
     [freequantity] => 1 
     [freeproduct] => 
     [freeproductid] => 31 
    ) 

) 

什么是实现这一目标的最佳途径?

+1

'$结果[$ buyid] [$ freeid] = ...'? –

+0

你能告诉我们生成'$ result'数组的代码吗? – huuuk

回答

1

只是将其更改为:

$result[$buyid][$freeid] = array(
    'itemquantity' => $v, 
    'buyproduct' => $_POST['buyproduct'][$k], 
    'buyproductid' => $buyid, 
    'freequantity' => $_POST['freequantity'][$k], 
    'freeproduct' => $_POST['freeproduct'][$k], 
    'freeproductid' => $freeid, 
); 
2

你只需要改变赋值语法一点:

$result[$buyid][$freeid] = array(
    'itemquantity' => $v, 
    'buyproduct' => $_POST['buyproduct'][$k], 
    'buyproductid' => $buyid, 
    'freequantity' => $_POST['freequantity'][$k], 
    'freeproduct' => $_POST['freeproduct'][$k], 
    'freeproductid' => $freeid, 
);