这是另一个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;
}