输入数组:
Array([0] => Array
(
[id] => 1
[check] => 1
[option] => "mk"
)[1] => Array
(
[id] => 2
[check] => 3
[option] => "zz"
)[2] => Array
(
[id] => 3
[check] => 5
[option] => "mk"
))
输出数组:
Array([0] => Array
(
[id] => 1
[check] => 6
[option] => "mk"
)[1] => Array
(
[id] => 2
[check] => 3
[option] => "zz"
))
如何通过删除已添加的数组来[check]
为所有相同的[option]
值添加所有值并简化输出数组?
您只需要使用 foreach 循环。这是解决方案。
<?php
$arr = [
["id" => 1, "check" => 1, "option" => "mk"],
["id" => 2, "check" => 3, "option" => "zz"],
["id" => 3, "check" => 5, "option" => "mk"]
];
$newArr = [];
foreach($arr as $a) {
// check if array element is already there based on option key in $newArr. In that case just add check value.
if(isset($newArr[$a['option']])) {
$newArr[$a['option']]['check'] += $a['check'];
continue;
}
$newArr[$a['option']] = $a;
}
$newArr = array_values($newArr);
print_r($newArr);
这是输出。
Array
(
[0] => Array
(
[id] => 1
[check] => 6
[option] => mk
)
[1] => Array
(
[id] => 2
[check] => 3
[option] => zz
)
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句