如何删除多维数组中的唯一元素?

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);

以上是关于如何删除多维数组中的唯一元素?的主要内容,如果未能解决你的问题,请参考以下文章

python中多维数组元素的唯一ID

为什么我不能在此片段中生成唯一对象数组?

08.18 javascript 06 数组 数组的概念 创建数组 读取数组中的元素 稀疏数组 添加和删除数组的元素 数组遍历 多维数组 数组的方法 类数组对象 作为数组的字符串

从javascript中的多维数组中删除一列

如何从 PHP 中的多维数组中删除重复值

如何从 PHP 中的多维关联数组中删除项目