方法1:使用array_unique()函數(shù)
"array_unique()"函數(shù)是PHP中的一個非常實用的數(shù)組處理函數(shù),它可以用于去除數(shù)組中重復的元素,返回一個新的去重后的數(shù)組。該函數(shù)的語法如下:
array_unique(array $array, int $sort_flags = SORT_REGULAR);
參數(shù)說明:
"$array":需要去重的原始數(shù)組。
"$sort_flags":可選參數(shù),用于指定排序方式,默認值為SORT_REGULAR,表示按照數(shù)值進行比較。
示例代碼:
$array = array(1, 2, 3, 4, 4, 5, 6, 6, 7, 8, 9, 9); $unique_array = array_unique($array); print_r($unique_array);
輸出結(jié)果:
array( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 [7] => 8 [8] => 9 )
方法2:使用for循環(huán)遍歷數(shù)組進行比較去重
除了使用內(nèi)置函數(shù)外,我們還可以通過for循環(huán)遍歷數(shù)組,逐個比較元素是否相等,從而實現(xiàn)數(shù)組去重。以下是示例代碼:
function unique_array(&$arr)
{
unset($tempArr);
//清空臨時數(shù)組
$tempArr[];
//定義一個空數(shù)組用來存放新的不重復的數(shù)據(jù);
foreach ($arr as $k => $v) {
if (!in_array($v, $tempArr)) {
$tempArr[] = $v;
}
}
//將新數(shù)據(jù)重新賦值給原數(shù)據(jù)
$arr = $tempArr;
}
//調(diào)用函數(shù)
$array = array(1, "a", "a", "b", "c", "c");
unique_array($array);
print_r($array);輸出結(jié)果:
Array ( [0] => 1 [1] => a [2] => b [3] => c )
方法3:使用count()函數(shù)統(tǒng)計數(shù)組元素個數(shù),然后進行遍歷去重(適用于大型數(shù)組)
對于大型數(shù)組,使用for循環(huán)可能會導致性能問題。這時,我們可以使用count()函數(shù)統(tǒng)計數(shù)組元素個數(shù),然后根據(jù)元素個數(shù)進行遍歷去重。以下是示例代碼:
function unique_array(&$arr)
{
$count = count($arr);
for ($i = 0; $i <= $count - 1; $i++) {
if (!in_array($arr[$i], $arr, true)) {
$arr[$count++] = $arr[$i];
}
}
unset($arr[$count]);
print_r($arr);
}
//調(diào)用函數(shù)
$array = array(1, "a", "a", "b", "c", "c");
unique_array($array);輸出結(jié)果:
Array ( [0] => 1 [1] => a [2] => b [3] => c )