这是另一个适合你的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
}
}
我将如何做到这一点?
答案 0 :(得分:0)
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;
}