插件窝 干货文章 PHP如何去除数组中的重复值

PHP如何去除数组中的重复值

array uniqueArray 数组 函数 639    来源:    2025-03-16

在PHP中,可以使用多种方法来去除数组中的重复值。以下是几种常见的方法:

1. 使用 array_unique() 函数

array_unique() 是PHP内置的函数,用于去除数组中的重复值。

$array = [1, 2, 2, 3, 4, 4, 5];
$uniqueArray = array_unique($array);

print_r($uniqueArray);

输出:

Array
(
    [0] => 1
    [1] => 2
    [3] => 3
    [4] => 4
    [6] => 5
)

2. 使用 array_flip() 函数

array_flip() 函数可以将数组的键和值互换,由于数组的键是唯一的,因此可以间接去除重复值。

$array = [1, 2, 2, 3, 4, 4, 5];
$uniqueArray = array_flip(array_flip($array));

print_r($uniqueArray);

输出:

Array
(
    [0] => 1
    [1] => 2
    [3] => 3
    [4] => 4
    [6] => 5
)

3. 使用 array_values() 函数重新索引数组

array_unique() 函数会保留原始数组的键,如果你希望重新索引数组,可以使用 array_values() 函数。

$array = [1, 2, 2, 3, 4, 4, 5];
$uniqueArray = array_values(array_unique($array));

print_r($uniqueArray);

输出:

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

4. 使用 array_reduce() 函数

array_reduce() 函数可以用于自定义去重逻辑。

$array = [1, 2, 2, 3, 4, 4, 5];
$uniqueArray = array_reduce($array, function($carry, $item) {
    if (!in_array($item, $carry)) {
        $carry[] = $item;
    }
    return $carry;
}, []);

print_r($uniqueArray);

输出:

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

5. 使用 array_keys()array_flip() 结合

这种方法适用于关联数组的去重。

$array = ['a' => 1, 'b' => 2, 'c' => 2, 'd' => 3];
$uniqueArray = array_keys(array_flip($array));

print_r($uniqueArray);

输出:

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
)

总结

  • array_unique() 是最简单直接的方法,适用于大多数情况。
  • array_flip() 方法适用于需要快速去重且不关心键值的情况。
  • array_values() 可以用于重新索引数组。
  • array_reduce() 提供了更大的灵活性,适用于复杂的去重逻辑。

根据你的具体需求选择合适的方法。