在php数组中添加所有重复元素

马尔钦·科斯特泽瓦

输入数组:

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章