简体   繁体   English

仅获取数组的值,并在另一个数组中将其设为新的$ key => $ value

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

I have an array result from a loop like this 我有这样的循环数组结果

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

I want my new array to be 我希望我的新阵列是

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

I've tried to loop that array with 我试图用该循环

$simple_unit =[];
        foreach ($unit_result as $row){
            $simple_unit[] = $row[0];
        }

But did'nt work as I expected. 但是没有按我预期的那样工作。 I think that I really don't know yet about looping an array. 我想我真的还不知道循环数组。

I really appreciate if you give the answer with brief explanation about looping an array. 如果您给出答案并给出有关循环数组的简短说明,我将不胜感激。

You need to build an associative array. 您需要构建一个关联数组。 You are missing that part in your code. 您在代码中缺少该部分。 Loop over through the array and use the value as the key and amount as the value and push into another array. 环上通过阵列和使用该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 : If you need to sum up values for matching keys: 编辑 :如果您需要总结匹配键的值:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM