插件窝 干货文章 如何使用PHP删除数组中重复的值?

如何使用PHP删除数组中重复的值?

array 数组 uniqueArray 方法 168    来源:    2025-03-16

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

方法1:使用 array_unique() 函数

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

<?php
$array = 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() 函数可以将数组的键和值互换。由于数组的键是唯一的,因此可以通过这种方式去除重复值。

<?php
$array = 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_unique() 函数会保留原始数组的键,如果你希望重新索引数组,可以使用 array_values() 函数。

<?php
$array = 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:使用 foreach 循环手动去重

你也可以使用 foreach 循环手动遍历数组并去除重复值。

<?php
$array = array(1, 2, 2, 3, 4, 4, 5);
$uniqueArray = array();

foreach ($array as $value) {
    if (!in_array($value, $uniqueArray)) {
        $uniqueArray[] = $value;
    }
}

print_r($uniqueArray);
?>

输出:

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

总结

  • array_unique() 是最简单直接的方法。
  • array_flip() 可以用于快速去重,但会改变数组的键。
  • 如果你需要重新索引数组,可以结合 array_values() 使用。
  • 手动去重的方法适用于需要更复杂逻辑的场景。

根据你的需求选择合适的方法即可。