当字符串相同时合并两个数组

时间:2017-08-28 09:51:38

标签: php arrays array-merge

我有两个要合并的数组。我通过for()循环创建了第一个,以便它包含最后七天(这里只有三个以保持简短):

array(7) {
  [0]=>
  array(2) {
    ["created_at"]=>
    string(10) "2017-08-15"
    ["errorCount"]=>
    string(1) "0"
  }
  [1]=>
  array(2) {
    ["created_at"]=>
    string(10) "2017-08-16"
    ["errorCount"]=>
    string(1) "0"
  }
  [2]=>
  array(2) {
    ["created_at"]=>
    string(10) "2017-08-17"
    ["errorCount"]=>
    string(1) "0"
  }
}

另一个数组包含来自DB的数据:

array(2) {
  [0]=>
  array(2) {
    ["created_at"]=>
    string(10) "2017-08-15"
    ["errorCount"]=>
    string(1) "4"
  }
  [1]=>
  array(2) {
    ["created_at"]=>
    string(10) "2017-08-16"
    ["errorCount"]=>
    string(1) "12"
  }
}

我想将这两者合并在一起,这样只要 created_at 相同,第一个数组中的 errorCount 就会被覆盖。我直接用array_merge()尝试了它,但它只将第二个数组的行添加到第一个数组的末尾。

有关如何解决此问题的任何建议?或者有不同的方法来处理它?<​​/ p>

1 个答案:

答案 0 :(得分:0)

按以下声明过滤结果:

$finArray = array_values(array_combine(array_map(function ($value) { 
   return $value['created_at']; 
}, $mergedArray), $mergedArray));