我有一个这样的数组:
Array
(
[0] => Array
(
[0] => Array
(
[id] => 1234
[name] => John
)
[1] => Array
(
)
)
[1] => Array
(
[0] => Array
(
[id] => 1234
[name] => John
)
[1] => Array
(
[id] => 5678
[name] => Sally
)
[2] => Array
(
[id] => 1234
[name] => Duke
)
)
我的结果数组应该如下(基本上合并并删除重复项并删除空值):
Array
(
[0] => Array
(
[id] => 1234
[name] => John
)
[1] => Array
(
[id] => 5678
[name] => Sally
)
[2] => Array
(
[id] => 1234
[name] => Duke
)
)
使用PHP的数组函数有一种简单的方法吗?
编辑:到目前为止我有这个:$result = array();
foreach ($array as $key => $value) {
if (is_array($value)) {
$result = array_merge($result, $value);
}
}
print_r($result);
答案 0 :(得分:1)
使用array_merge
合并数组。然后使用array_unique
删除重复项。最后,要删除null键,请使用循环。
foreach($array as $key=>$value)
{
if(is_null($value) || $value == '')
unset($array[$key]);
}
可以找到有关这些方法的文档here。
答案 1 :(得分:0)
array_filter()
过滤出空的子数组。array_unique()
删除重复的子数组。 (SORT_REGULAR
阻止了“警告:数组到字符串的转换”)代码:(Demo)
var_export(
array_unique(
array_filter(
array_merge(...$array)
),
SORT_REGULAR
)
);
array_values()
以对其重新索引(删除旧键)。