可以使用array_unique函数去重一个二维数组,但是需要注意的是,这个函数只能去除第一维的重复元素,并不能去重整个二维数组。因此,需要结合array_map和serialize函数将二维数组中的子数组序列化成字符串,然后再去重,最后再将字符串转回二维数组即可。
示例代码如下:
function unique2dArray($array) {
$serialized = array_map("serialize", $array);
$unique = array_unique($serialized);
return array_map("unserialize", $unique);
}
$array = [
["apple", "banana", "orange"],
["apple", "banana", "lemon"],
["pear", "banana", "grape"],
["apple", "banana", "orange"],
["pear", "banana", "grape"]
];
$uniqueArray = unique2dArray($array);
print_r($uniqueArray);
输出结果为:
Array
(
[0] => Array
(
[0] => apple
[1] => banana
[2] => orange
)
[1] => Array
(
[0] => apple
[1] => banana
[2] => lemon
)
[2] => Array
(
[0] => pear
[1] => banana
[2] => grape
)
)