方法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
)