[英]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.