PHP合并数组,如果他们有相同的键值
问题描述:
我有一个关联数组的数组。PHP合并数组,如果他们有相同的键值
$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合并,永久处理和最终无法得到它的工作。
任何想法?
答
您可以创建一个新的数组,由report_date
索引并推值到它:
$out=[];
foreach($array as $subarray){
foreach($subarray as $key=>$val){
$out[$subarray['report_date']][$key]=$val;
}
}
var_dump($out);
+0
这正是我需要的解决方案。谢谢。 –
+0
没问题,很高兴我能帮到你。 – Steve
_“我试了几件事情,” _ - 请分享你试了一下,一起以及一些原始输入和预期输出的实例。 –
我最初的建议是重新思考你想要完成的事情。当你的解决方案看起来像这样,通常意味着你要么完全不了解问题,要么你在一个兔子洞里徘徊。也许这将有助于https://en.wikipedia.org/wiki/Rubber_duck_debugging – Halfstop
我正在编辑我的问题,但有人回答它与理想的结果。我肯定会赞扬你们的评论,因为这些建议都是很有说服力的。 –