在PHP中,数组去重不一定需要手动编写循环遍历代码。PHP提供了内置函数来简化这个过程。最常用的方法是使用 array_unique()
函数,它可以自动去除数组中的重复值。
array_unique()
函数array_unique()
函数会返回一个新数组,其中包含原数组中的所有唯一值。
$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
)
array_unique()
会保留第一个出现的值的键名,后续重复值的键名会被忽略。array_unique()
是区分类型的,例如 1
和 "1"
会被视为不同的值。array_unique()
可能会有性能问题,因为它需要对数组进行排序和比较。如果你有特殊需求(例如自定义去重逻辑),可以手动遍历数组并使用 in_array()
或 array_flip()
等方法来实现去重。
in_array()
$array = [1, 2, 2, 3, 4, 4, 5];
$uniqueArray = [];
foreach ($array as $value) {
if (!in_array($value, $uniqueArray)) {
$uniqueArray[] = $value;
}
}
print_r($uniqueArray);
array_flip()
array_flip()
可以通过交换键和值来去重,因为数组的键必须是唯一的。
$array = [1, 2, 2, 3, 4, 4, 5];
$uniqueArray = array_keys(array_flip($array));
print_r($uniqueArray);
array_unique()
是最简单和高效的方式。array_flip()
。