PHP添加具有相同id的值


PHP Adding Values With The Same ID's

这是另一个PHP !

我有两个数组来自两个表,它们具有相同的列名但不同的值。我创建了一个查询,调用两个表将数据转储到数组中。我得到的值是:-

Array {
    [0] {
        [id] => 23,
        [count] => 300
    },
    [1] {
        [id] => 43,
        [count] => 400
    }
}

Array {
    [0] {
        [id] => 43,
        [count] => 200
    },
    [1] {
        [id] => 78,
        [count] => 55
    }
}

我想做的是:-

Array {
    [0] {
        [id] => 23,
        [count] => 300
    },
    [1] {
        [id] => 43,
        [count] => 600 <---- Notice how this has been added together
    },
    [2] {
        [id] => 78,
        [count] => 55
    }
}

我该怎么做呢?

array_merge一开始似乎是一个不错的选择,但实际上不是,因为它不合并数字键,而只是附加它们。

最简单的方法是为合并编写自己的函数。

看起来像这样:

function merge_array($first, $second)
{
    $result = array();
    append_array($result, $first);
    append_array($result, $second);
    return $result;
}
function append_array(&$result, $array)
{
    foreach($array as $entry){
        $index = get_element_index($result, $entry);
        if($index < 0){
            // Add as normal
            $result[] = $entry;
        }else{
            $result[$index]['count'] = $result[$index]['count'] + $entry['count'];
        }
    }
}
function get_element_index($array, $element)
{
    for($i = 0; $i < count($array); $i++){
        if($entry['id'] == $element['id']){
            return $i;
        }
    }
    return -1;
}