只获取数组的值并使其成为新的$ key =>另一个数组中的$ value

时间:2015-10-18 02:21:01

标签: php arrays

我有一个像这样的循环的数组结果

Array ( [0] => Array ( [value] => JKTOF [amount] => 3 ) [1] => Array ( [value] => JKTVZ [amount] => 1 ) [2] => Array ( [value] => JKTOF [amount] => 5 ) [3] => Array ( [value] => JKTDO [amount] => 1 ) [4] => Array ( [value] => JKTOF [amount] => 6 ) [5] => Array ( [value] => JKTWF [amount] => 1 ) [6] => Array ( [value] => JKTML [amount] => 1 ) [7] => Array ( [value] => JKTOG [amount] => 1 ) [8] => Array ( [value] => JKTOF [amount] => 1 ) [9] => Array ( [value] => JKTDO [amount] => 1 ) [10] => Array ( [value] => JKTOC [amount] => 1 ) [11] => Array ( [value] => JKTCC [amount] => 1 ) [12] => Array ( [value] => JKTOC [amount] => 2 ) [13] => Array ( [value] => JKTCH [amount] => 1 ) [14] => Array ( [value] => JKTOC [amount] => 3 ) [15] => Array ( [value] => TKGKO [amount] => 1 ) [16] => Array ( [value] => JKTOC [amount] => 6 ) [17] => Array ( [value] => DPSOC [amount] => 1 ) [18] => Array ( [value] => JKTOC [amount] => 7 ) [19] => Array ( [value] => MELKK [amount] => 1 ) [20] => Array ( [value] => JKTOC [amount] => 12 ) [21] => Array ( [value] => DPSOC [amount] => 1 ) [22] => Array ( [value] => JKTOC [amount] => 9 ) [23] => Array ( [value] => JKTVZ [amount] => 1 ) [24] => Array ( [value] => JKTOC [amount] => 5 ) [25] => Array ( [value] => JKTOG [amount] => 1 ) [26] => Array ( [value] => JKTDB [amount] => 1 ) [27] => Array ( [value] => MESTS [amount] => 1 ) [28] => Array ( [value] => CGKGF [amount] => 1 ) [29] => Array ( [value] => JKTFS [amount] => 1 ) [30] => Array ( [value] => CGKGF [amount] => 1 ) [31] => Array ( [value] => JKTGF [amount] => 1 ) [32] => Array ( [value] => CGKGF [amount] => 1 ) [33] => Array ( [value] => JKTOG [amount] => 1 ) [34] => Array ( [value] => CGKGF [amount] => 1 ) [35] => Array ( [value] => JKTGF [amount] => 2 ) [36] => Array ( [value] => JKTCG [amount] => 1 ) [37] => Array ( [value] => JKTDI [amount] => 1 ) [38] => Array ( [value] => JKTMQ [amount] => 1 ) [39] => Array ( [value] => JKTOG [amount] => 1 ) [40] => Array ( [value] => JKTGF [amount] => 1 ) )

我希望我的新阵列

Array ( JKTOF => 3 JKTVZ =>1 ....)

我试图用

循环该数组
$simple_unit =[];
        foreach ($unit_result as $row){
            $simple_unit[] = $row[0];
        }

但确实按照我的预期工作了。我认为我还不知道循环数组。

如果您给出答案以及关于循环数组的简要说明,我真的很感激。

1 个答案:

答案 0 :(得分:0)

您需要构建一个关联数组。您在代码中缺少该部分。循环遍历数组并使用value作为键,amount作为值并推入另一个数组。

$simple_unit =[];
foreach ($unit_result as $row){
    $key = $row["value"];
    $val = $row["amount"];
    $simple_unit[$key] = $val;
}
print_r($simple_unit); // Array ( [JKTOF] => 3 [JKTVZ] =>1 ....)

编辑:如果您需要总结匹配键的值:

$simple_unit =[];
foreach ($unit_result as $row){
    $key = $row["value"];
    $val = $row["amount"];
    if(empty($simple_unit[$key])){
       $simple_unit[$key] = 0;
    }
    $simple_unit[$key] += $val;
}
print_r($simple_unit); // Array ( [JKTOF] => 15 [JKTVZ] =>12 ....)