如何删除多维数组中的唯一元素?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何删除多维数组中的唯一元素?相关的知识,希望对你有一定的参考价值。
如何删除多维数组中的重复键?
我的数组如下。
$array = [[0, 1, 2, 3, 4], [1, 2, 3, 4, 6]];
我想要的数组应该是..:
$array = [[0, 1, 2, 3, 4], [6]];
答案
这里有一个简单而又肮脏的解决方案
递归遍历数组中的每一个元素 如果你没有看到一个元素,就把它设置为null (由于某些原因,取消设置是行不通的). 然后对得到的子数组进行过滤。
$array = [[0, 1, 2, 3, 4], [1, 2, 3, 4, 6]];
$seen = [];
array_walk_recursive($array, function (&$v) use (&$seen) {
if (!array_key_exists($v, $seen) {
$seen[$v] = true;
} else {
$v = null;
}
});
$final = array_map('array_filter', $array);
另一答案
如果使用了函数array_diff()和array_values(),就可以在一行代码中提供解决方案。
$array = [[0, 1, 2, 3, 4], [1, 2, 3, 4, 6]];
$array[1] = array_values(array_diff($array[1],$array[0]));
var_export($array);
输出:
array (
0 =>
array (
0 => 0,
1 => 1,
2 => 2,
3 => 3,
4 => 4,
),
1 =>
array (
0 => 6,
),
)
另一答案
$serialize=array_map('serialize',$array);
$unique=array_unique($serialize);
$result=array_map('unserialize',$uniue);
print_r($result);
以上是关于如何删除多维数组中的唯一元素?的主要内容,如果未能解决你的问题,请参考以下文章
08.18 javascript 06 数组 数组的概念 创建数组 读取数组中的元素 稀疏数组 添加和删除数组的元素 数组遍历 多维数组 数组的方法 类数组对象 作为数组的字符串