您好,登錄后才能下訂單哦!
這篇文章主要介紹“PHP數(shù)組中的重復(fù)元素怎么刪除”的相關(guān)知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“PHP數(shù)組中的重復(fù)元素怎么刪除”文章能幫助大家解決問題。
一、使用array_unique()函數(shù)去重
PHP提供了一個內(nèi)置函數(shù)array_unique(),它的作用是去除數(shù)組中重復(fù)的元素,返回不包含重復(fù)元素的新數(shù)組。該函數(shù)的語法如下:
array array_unique(array $array[, int $sort_flags = SORT_STRING])
其中,$array是需要操作的數(shù)組,$sort_flags是一個可選參數(shù),指定去重時的排序方式。如果不傳入該參數(shù),默認使用字符串的排序方式。如果想按照數(shù)值大小進行排序,則可以傳入常量SORT_NUMERIC。下面是示例代碼:
$old_array = [1, 3, 5, 3, 1, 6, 5]; $new_array = array_unique($old_array); var_dump($new_array);
輸出結(jié)果為:
array(4) { [0]=> int(1) [1]=> int(3) [2]=> int(5) [5]=> int(6) }
可以看到,經(jīng)過去重處理后,重復(fù)的元素被移除,留下了不同的元素。需要注意的是,新數(shù)組的鍵名并不是連續(xù)的,因為根據(jù)PHP的語法規(guī)定,整數(shù)和字符串是兩種不同的數(shù)據(jù)類型。
二、使用循環(huán)去重
除了內(nèi)置函數(shù)array_unique(),我們還可以使用循環(huán)來實現(xiàn)去重的功能。主要思路是遍歷數(shù)組的每個元素,如果該元素已經(jīng)存在于新數(shù)組中,則不添加;否則,將其加入到新數(shù)組中。下面是示例代碼:
$old_array = [1, 3, 5, 3, 1, 6, 5]; $new_array = []; foreach ($old_array as $value) { if (!in_array($value, $new_array)) { $new_array[] = $value; } } var_dump($new_array);
輸出結(jié)果為:
array(4) { [0]=> int(1) [1]=> int(3) [2]=> int(5) [3]=> int(6) }
可以看到,經(jīng)過循環(huán)處理后,新數(shù)組中的元素與內(nèi)置函數(shù)的輸出結(jié)果相同,去除了重復(fù)的元素,保留了不同的元素。需要注意的是,在循環(huán)內(nèi)部使用in_array()函數(shù)判斷數(shù)組中是否已經(jīng)存在該元素,該函數(shù)的返回值是一個布爾值。
三、使用array_flip()函數(shù)去重
除了array_unique()和循環(huán),還可以使用array_flip()函數(shù)來去重處理數(shù)組。該函數(shù)的作用是交換數(shù)組中鍵和值的位置,然后返回一個新數(shù)組。因為PHP中數(shù)組的鍵名必須是唯一的,所以通過使用這個函數(shù),可以去除數(shù)組中的重復(fù)元素。下面是示例代碼:
$old_array = [1, 3, 5, 3, 1, 6, 5]; $new_array = array_flip($old_array); var_dump(array_keys($new_array));
輸出結(jié)果為:
array(4) { [0]=> int(1) [1]=> int(3) [2]=> int(5) [3]=> int(6) }
可以看到,使用array_flip()函數(shù)去重后,返回了僅包含不同元素的新數(shù)組。但需要注意的是,原來數(shù)組中的值會被當(dāng)成新數(shù)組的鍵名,而新數(shù)組的值會自動賦值為1。
關(guān)于“PHP數(shù)組中的重復(fù)元素怎么刪除”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識,可以關(guān)注億速云行業(yè)資訊頻道,小編每天都會為大家更新不同的知識點。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。