溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

php如何移除重復(fù)數(shù)組

發(fā)布時(shí)間:2023-03-29 14:44:23 來(lái)源:億速云 閱讀:111 作者:iii 欄目:編程語(yǔ)言

這篇文章主要介紹了php如何移除重復(fù)數(shù)組的相關(guān)知識(shí),內(nèi)容詳細(xì)易懂,操作簡(jiǎn)單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇php如何移除重復(fù)數(shù)組文章都會(huì)有所收獲,下面我們一起來(lái)看看吧。

一、PHP數(shù)組去重的函數(shù)

PHP提供了兩個(gè)函數(shù)可以用來(lái)實(shí)現(xiàn)數(shù)組去重,分別是array_unique()和array_diff_key()。

  1. array_unique()函數(shù)

array_unique()函數(shù)可以去除數(shù)組中重復(fù)的值,返回一個(gè)新數(shù)組。

示例代碼:

$arr = array("apple", "banana", "cherry", "cherry", "banana");
$arr = array_unique($arr);
print_r($arr);

輸出結(jié)果:

Array
(
    [0] => apple
    [1] => banana
    [2] => cherry
)

可見,array_unique()函數(shù)成功去掉了原數(shù)組中的重復(fù)元素。

  1. array_diff_key()函數(shù)

array_diff_key()函數(shù)可以將兩個(gè)數(shù)組做比較,返回兩個(gè)數(shù)組差異部分的鍵名。

示例代碼:

$array1 = array("a" => "red", "b" => "green", "c" => "blue");
$array2 = array("a" => "red", "b" => "green", "d" => "yellow");

$result = array_diff_key($array1, $array2);
print_r($result);

輸出結(jié)果:

Array
(
    [c] => blue
)

在例子中,array_diff_key()函數(shù)篩選出了$array1中與$array2不同的部分,返回為一個(gè)新數(shù)組。

二、手動(dòng)實(shí)現(xiàn)數(shù)組去重

除了使用PHP函數(shù)外,我們還可以手動(dòng)實(shí)現(xiàn)數(shù)組去重。

  1. 方法一

使用for循環(huán)和if語(yǔ)句對(duì)數(shù)組進(jìn)行遍歷,判斷重復(fù)元素并將其移除。

示例代碼:

$arr = array(1, 2, 5, 2, 1, 6, 7, 8, 7, 9);
$new_arr = array();

for ($i = 0; $i < count($arr); $i++) {
    if (!in_array($arr[$i], $new_arr)) {
        $new_arr[] = $arr[$i];
    }
}

print_r($new_arr);

輸出結(jié)果:

Array
(
    [0] => 1
    [1] => 2
    [2] => 5
    [3] => 6
    [4] => 7
    [5] => 8
    [6] => 9
)

in_array()函數(shù)判斷原數(shù)組中的元素是否已經(jīng)出現(xiàn)在新數(shù)組中,若沒有則將其添加到新數(shù)組中。

  1. 方法二

使用array_flip()函數(shù)對(duì)數(shù)組進(jìn)行翻轉(zhuǎn),去掉重復(fù)鍵值對(duì)后使用array_flip()函數(shù)將數(shù)組翻轉(zhuǎn)回來(lái)。

示例代碼:

$arr = array(1, 2, 5, 2, 1, 6, 7, 8, 7, 9);
$new_arr = array_flip(array_flip($arr));

print_r($new_arr);

輸出結(jié)果:

Array
(
    [0] => 1
    [1] => 2
    [2] => 5
    [3] => 6
    [4] => 7
    [5] => 8
    [6] => 9
)

這個(gè)方法不需要使用循環(huán),只需用array_flip()函數(shù)兩次即可。

關(guān)于“php如何移除重復(fù)數(shù)組”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對(duì)“php如何移除重復(fù)數(shù)組”知識(shí)都有一定的了解,大家如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI