PHP合并数组,如果它们具有相同的键值

时间:2017-09-13 21:43:16

标签: php arrays sorting merge

我有一组关联数组。

$array = [
    ['report_date' => 'date', 'name' => 'name'], 
    ['report_date' => 'date', 'color' => 'color']
];

我想对此数组进行排序,如果

$array[x]['report_date'] === $array[y]['report_date']

然后我需要执行一个在这种情况下会返回的合并:

$newArray = [['report_date'=>date,'name'=>name,'color'=>color]]

当然,我们需要考虑到可能有多个阵列满足此要求,我们也必须将它们合并。

我尝试了很多事情,这导致了映射和foreach合并,这些合并需要永久处理,最终无法使其正常工作。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

您可以创建一个由report_date建立索引的新数组并将值推入其中:

$out=[];
foreach($array as $subarray){
    foreach($subarray as $key=>$val){
        $out[$subarray['report_date']][$key]=$val;
    }
}

var_dump($out);