PHP数组处理,二维数组,去重以及值相加。想了半天没有想到,求帮助?

<?php
$array = Array
(

[0] => Array
    (
        [source_browser] => 1
        [num] => 1
    )

[1] => Array
    (
        [source_browser] => 2
        [num] => 2
    )

[2] => Array
    (
        [source_browser] => 3
        [num] => 3
    )

[3] => Array
    (
        [source_browser] => 2
        [num] => 4
    )

[4] => Array
    (
        [source_browser] => 4
        [num] => 5
    )

[5] => Array
    (
        [source_browser] => 1
        [num] => 6
    )

);
怎么把数组处理为:Array
(

[0] => Array
    (
        [source_browser] => 1
        [num] => 7
    )

[1] => Array
    (
        [source_browser] => 2
        [num] => 6
    )

[2] => Array
    (
        [source_browser] => 3
        [num] => 3
    )

[3] => Array
    (
        [source_browser] => 4
        [num] => 5
    )

)
也就是当source_browser的值相等的时候,把他们的num值相加然后,相等的只保留一个键值对source_browser num为相加后的
?>

翻过高山走不出你
浏览 605回答 2
2回答

慕妹3146593

<?php $array = [ ['source_browser' => 1, 'num' => 1], ['source_browser' => 3, 'num' => 3], ['source_browser' => 2, 'num' => 3], ['source_browser' => 2, 'num' => 3], ['source_browser' => 1, 'num' => 3] ]; $tmp = []; foreach ($array as $v) { $index = $v['source_browser'] - 1; // init if (!isset($tmp[$index])) { $tmp[$index]['num'] = 0; $tmp[$index]['source_browser'] = $v['source_browser']; } $tmp[$index]['num'] += $v['num']; } var_dump($tmp); ---------- Debug PHP ---------- array(3) { [0]=> array(2) { ["num"]=> int(4) ["source_browser"]=> int(1) } [2]=> array(2) { ["num"]=> int(3) ["source_browser"]=> int(3) } [1]=> array(2) { ["num"]=> int(6) ["source_browser"]=> int(2) } } 输出完成 (耗时 0 秒) - 正常终止 排序有点问题,如果你想按你的那样排序,自己写一个循环也是很简单的。我就不多写了。

沧海一幻觉

` $array = [ ['source_browser' => 1, 'num' => 1], ['source_browser' => 3, 'num' => 3], ['source_browser' => 2, 'num' => 3], ['source_browser' => 2, 'num' => 3], ['source_browser' => 1, 'num' => 3] ]; $tmp = []; foreach ($array as $key => $value){ if(!isset($tmp[$value['source_browser']])){ $tmp[$value['source_browser']] = $value; }else{ $tmp[$value['source_browser']]['num'] += $value['num']; } } $tmp = array_values($tmp); echo '<pre>'; var_dump($tmp); die();`
打开App,查看更多内容
随时随地看视频慕课网APP