[英]Remove duplicates from a multi-dimensional array in PHP
我现在想了解如何从多维数组中删除重复项。 我有一个看起来像这样的数组:
数组前
Array
(
[0] => Array
(
[0] => 'Hello'
[1] => 'Test'
)
[1] => Array
(
[0] => 'Friend'
[1] => 'Test'
)
[2] => Array
(
[0] => 'Hello'
[1] => 'Code'
)
[3] => Array
(
[0] => 'Hello'
[1] => 'Test'
)
[4] => Array
(
[0] => 'hello'
[1] => 'Test'
)
[5] => Array
(
[0] => 'Hello'
[1] => 'Test'
)
)
我希望它看起来像这样:
数组后
Array
(
[0] => Array
(
[0] => 'Hello'
[1] => 'Test'
)
[1] => Array
(
[0] => 'Friend'
[1] => 'Test'
)
[2] => Array
(
[0] => 'Hello'
[1] => 'Code'
)
[3] => Array
(
[0] => 'hello'
[1] => 'Test'
)
)
如您所见,第三个和fith元素被删除,因为元素零与它们相同。 解决此问题的最有效方法是什么? 谢谢。
您可以使用array_unique 。
$arrays = [
[
"Hello",
"Test"
],
[
"Friend",
"Test"
],
[
"Hello",
"Test"
],
[
"hello",
"Test"
]
];
var_dump(array_unique($arrays, SORT_REGULAR));
那会给你:
array(3) {
[0]=>
array(2) {
[0]=>
string(5) "Hello"
[1]=>
string(4) "Test"
}
[1]=>
array(2) {
[0]=>
string(6) "Friend"
[1]=>
string(4) "Test"
}
[3]=>
array(2) {
[0]=>
string(5) "hello"
[1]=>
string(4) "Test"
}
}
另一个解决方案可能是:
$myArray = array_map("unserialize", array_unique(array_map("serialize", $array)));
您可以在这里尝试:
这是另一种方式。 没有保存中间变量。
我们使用它来删除来自各种重叠查询的结果。
$input = array_map("unserialize",array_unique(array_map("serialize", $input)));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.