如果二维数组中的行具有相同的列值,则对它们进行分组和合并

问题描述 投票:0回答:1

我有一个关联数组的数组。

$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 合并需要很长时间才能处理,最终无法正常工作。

php arrays multidimensional-array merge grouping
1个回答
2
投票

您可以创建一个新数组,由

report_date
索引并将值推入其中:

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

var_dump($out);
© www.soinside.com 2019 - 2024. All rights reserved.