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


Get only values of array and make it new $key => $value in another array

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

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];
        }

但没有像我预期的那样工作。我想我真的还不知道如何循环数组

如果你能给出关于循环数组的简单解释,我将非常感激。

您需要构建一个关联数组。您的代码中缺少了这一部分。循环遍历数组,使用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 ....)

EDIT:如果您需要对匹配键的值求和:

$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 ....)