array_unique
函数只能用于处理一维数组,不适用于多维数组。要处理多维数组,您可以使用以下方法:
方法1:使用 array_map
和 serialize
function array_unique_multidimensional($array) {
$serialized = array_map('serialize', $array);
$unique = array_unique($serialized);
return array_intersect_key($array, $unique);
}
$multidimensionalArray = [
['id' => 1, 'name' => 'A'],
['id' => 2, 'name' => 'B'],
['id' => 1, 'name' => 'A'],
['id' => 3, 'name' => 'C']
];
$uniqueArray = array_unique_multidimensional($multidimensionalArray);
print_r($uniqueArray);
方法2:使用 foreach
循环
function array_unique_multidimensional($array) {
$result = [];
foreach ($array as $item) {
if (!in_array($item, $result)) {
$result[] = $item;
}
}
return $result;
}
$multidimensionalArray = [
['id' => 1, 'name' => 'A'],
['id' => 2, 'name' => 'B'],
['id' => 1, 'name' => 'A'],
['id' => 3, 'name' => 'C']
];
$uniqueArray = array_unique_multidimensional($multidimensionalArray);
print_r($uniqueArray);
这两种方法都可以有效地处理多维数组并去除重复项。根据您的需求和喜好选择合适的方法。