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

Php 如何删除多维数组中的唯一元素?,php,Php,如何从多维数组中删除重复键 我的数组如下: $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]; $SEED=[]; 数组_walk_递归($a

如何从多维数组中删除重复键

我的数组如下:

$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];
$SEED=[];
数组_walk_递归($array,function(&$v)use(&$seen){
如果(!array_key_)存在($v,$seen){
$SEED[$v]=真;
}否则{
$v=null;
}
});
$final=array\u map('array\u filter',$array);

如果函数array_diff()和array_值​​(),则解决方案可以通过一行代码交付:

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