如果键值相同,则为数组值的总和

时间:2018-06-07 16:05:56

标签: php arrays multidimensional-array sum

我有一个像 -

这样的数组
Array
(
    [0] => Array
        (
            [type] => 9
            [code] => 10            
            [date] => 2018-03-31
        )

    [1] => Array
        (
            [type] => 2
            [code] => 20           
            [date] => 2018-04-02
        )
    [2] => Array
        (
            [type] => 3
            [code] => 30            
            [date] => 2018-03-31
        )
    [3] => Array
        (
            [type] => 5
            [code] => 40            
            [date] => 2018-03-31
        )    
)

预期的数组将是 -

Array
(
    [0] => Array
        (
            [type] => 17
            [code] => 80            
            [date] => 2018-03-31
        )

    [1] => Array
        (
            [type] => 2
            [code] => 20           
            [date] => 2018-04-02
        )
)

即如果日期键值相同,我需要将其他键值相加。 尝试不同的方式。但是没有用。

编辑: 我试着这样做:

$new_array = array();

foreach($response as $key=>$res)
{
if(array_key_exists("date", $res) && !in_array($res['date'], $date_array))
{
    array_push($date_array, $res['date']);
    $flag = 1;
    $is_multiple = 0;
}

if(in_array($res['date'], $date_array) && $flag == 1)
{
        $code += $res['code'];
        $type += $res['type'];

        $new_array[$key]['type'] = $type;
        $new_array[$key]['code'] = $code;
        $new_array[$key]['date'] = $res['date'];
}
else
{
    $new_array[$key]['type'] = $res['type'];
    $new_array[$key]['code'] = $res['code'];
    $new_array[$key]['date'] = $res['date'];
}
}

创建新的日期唯一数组并检查日期是否已存在。 如果存在日期,只需输入关键值的总和。

但是,这似乎不起作用。

感谢任何帮助。

0 个答案:

没有答案