示例:
Array A
[0] { date="01-03-2016", foo=30}
[1] { date="02-03-2016", foo=17}
[2] { date="03-03-2016", foo=15}
[3] { date="04-03-2016", foo=28}
[4] { date="01-03-2016", bar=33}
[5] { date="04-03-2016", bar=34}
Array B (Wanted array)
[0] { date="01-03-2016", foo=30 ,bar=33}
[1] { date="02-03-2016", foo=17}
[2] { date="03-03-2016", foo=15}
[3] { date="04-03-2016", foo=28, bar=34}
我尝试使用array_unique($array, SORT_REGULAR);
,但我想数组需要具有相同的属性名称才能工作。
答案 0 :(得分:1)
您可以暂时使用date
属性作为数组键来执行此操作。这是我能想到的最简单的例子:
$tmp = [];
foreach ($array as $val) {
$tmp[$val['date']] = array_merge(
isset($tmp[$val['date']]) ? $tmp[$val['date']] : [],
$val
);
}
$result = array_values($tmp);
您使用$val['date']
作为$tmp
数组中的键。现在,当foreach
遍历您的数组时,它会将同一日期$tmp
数组中的任何内容与当前值合并。
然后,如果您愿意,可以使用$tmp
从array_values
剥离密钥。