我有一个数组,其中包含更多的子数组,如
Array
(
[0] => MM
[1] => CM
[2] => Inch
)
Array
(
[0] => MM
[1] => CM
[2] => Inch
)
由于两个数组都有相同的元素,所以我尝试从中获取一个。我尝试array_unique(),合并函数但没有成功。我可以通过使用foreach循环删除一个数组但我想知道如果它是可能通过单个声明,比如一些bulitin函数或一行代码不超过那个。希望得到我的观点。我试图减少我的代码
答案 0 :(得分:1)
如果我收到您的问题,您正试图删除重复的子数组。试试这个
$input = array_map("unserialize", array_unique(array_map("serialize", $input)));
array_unique从数组中删除重复项。
array_map需要2个参数
array_map ( callable $callback , array $arr1 [, array $... ] )
它以递归方式运行数组
上的回调基本上代码序列化数组的内容(在这种情况下是每个子数组),删除重复项然后反序列化内容以重新创建原始数组
答案 1 :(得分:0)
仅使用下面的一条陈述
<?php
$arr1 = array('MM','CM','Inch');
$arr2 = array('MM','CM','Inch');
$array = array_values(array_unique(array_merge($arr1,$arr2)));
echo "<pre]>";
print_r($array);
exit;
?>
<强>输出强>
Array
(
[0] => MM
[1] => CM
[2] => Inch
)
答案 2 :(得分:0)
在那之前......我正在编辑你的一些代码。我使用像这样的代码::
<?php
$a = Array(
Array(
0 => MM,
1 => CM,
2 => Inch
),
Array(
0 => MM,
1 => CM,
2 => Inch
)
);
print_r($a);
echo "<br/><br/><br/>";
print_r(array_unique($a));
?>
来自我的代码::
Array ( [0] => Array ( [0] => MM [1] => CM [2] => Inch ) [1] => Array ( [0] => MM [1] => CM [2] => Inch ) )
Array ( [0] => Array ( [0] => MM [1] => CM [2] => Inch ) )
希望它会有所帮助。 问候。