在PHP中,可以使用多種方法高效地去重集合中的元素。以下是一些常用的方法:
array_unique() 函數:$array = [1, 2, 3, 4, 4, 5, 6, 6, 7];
$uniqueArray = array_unique($array);
print_r($uniqueArray);
array_values() 函數配合 array_unique() 函數:$array = [1, 2, 3, 4, 4, 5, 6, 6, 7];
$uniqueArray = array_values(array_unique($array));
print_r($uniqueArray);
foreach 循環去重:$array = [1, 2, 3, 4, 4, 5, 6, 6, 7];
$keys = [];
$result = [];
foreach ($array as $key => $value) {
if (!in_array($value, $keys)) {
$keys[] = $value;
$result[] = $value;
}
}
print_r($result);
SplObjectStorage 類去重:class MyClass
{
public $value;
public function __construct($value)
{
$this->value = $value;
}
}
$array = [new MyClass(1), new MyClass(2), new MyClass(3), new MyClass(1)];
$uniqueArray = [];
foreach ($array as $item) {
if (!in_array($item, $uniqueArray)) {
$uniqueArray[] = $item;
}
}
print_r($uniqueArray);
這些方法都可以有效地去除集合中的重復元素。array_unique() 函數是最簡單且高效的方法,適用于大多數情況。如果需要根據對象的屬性去重,可以使用 SplObjectStorage 類。