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