温馨提示×

php array_unique处理多维数组的方法

PHP
小樊
90
2024-09-05 02:20:11
栏目: 编程语言

array_unique 函数只能用于处理一维数组,不适用于多维数组。要处理多维数组,您可以使用以下方法:

方法1:使用 array_mapserialize

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);

这两种方法都可以有效地处理多维数组并去除重复项。根据您的需求和喜好选择合适的方法。

0