📜  删除数组 php 中的重复值(1)

📅  最后修改于: 2023-12-03 14:50:19.634000             🧑  作者: Mango

删除数组 PHP 中的重复值

在 PHP 中,我们可以通过一些方法来删除一个数组中的重复值。这在一些需要去重的场景中非常常见,例如统计某个词汇表的数量时,我们需要过滤掉重复的单词。以下是一些方法:

1. array_unique()

这是 PHP 自带的一个函数,可以删除数组中所有相同的值并返回新的数组。这个函数非常简单易用,只需要将目标数组作为参数传递即可。

$numbers = array(1, 2, 2, 3, 4, 4, 5);
$unique_numbers = array_unique($numbers);

print_r($unique_numbers);
// 输出:Array ( [0] => 1 [1] => 2 [3] => 3 [4] => 4 [6] => 5 )
2. 使用循环删除

我们可以使用循环来遍历整个数组,并通过比较相邻元素来判断是否需要删除当前元素。这个方法相对比较麻烦,但是它可以保留原始的数组键(array key)。

$numbers = array(1, 2, 2, 3, 4, 4, 5);

for ($i = 0; $i < count($numbers); $i++) {
    for ($j = $i + 1; $j < count($numbers); $j++) {
        if ($numbers[$i] == $numbers[$j]) {
            array_splice($numbers, $j, 1);
            $j--;
        }
    }
}

print_r($numbers);
// 输出:Array ( [0] => 1 [1] => 2 [3] => 3 [4] => 4 [6] => 5 )
3. 使用 array_diff()

这个函数也可以用来删除数组中的重复值。我们可以将目标数组和一个包含所有可能值的数组作为参数传递给这个函数,在返回的结果中只会包含目标数组中不存在于第二个数组中的元素。这个方法比使用循环快一些,但如果数据量非常大的话可能会有一些性能问题。

$numbers = array(1, 2, 2, 3, 4, 4, 5);
$unique_numbers = array_diff($numbers, array());

print_r($unique_numbers);
// 输出:Array ( [0] => 1 [1] => 2 [3] => 3 [4] => 4 [6] => 5 )

以上就是几种 PHP 删除数组中重复值的方法,具体使用哪一种方法取决于实际情况。需要注意的是,如果数组中存在字符串或其他非整数类型的元素,则需要使用第一种或第三种方法。