實(shí)戰(zhàn)案例:PHP快速實(shí)現(xiàn)數(shù)組去重的注意事項(xiàng)有哪些
2021-06-27
這次給大家?guī)鞵HP快速實(shí)現(xiàn)數(shù)組去重。 PHP快速實(shí)現(xiàn)數(shù)組去重有哪些注意事項(xiàng)?下面是一個(gè)實(shí)際案例。我們來看看。
概述
使用 PHP 的 () 函數(shù)可以傳遞數(shù)組,然后刪除重復(fù)值,并返回具有唯一值的數(shù)組。此功能在大多數(shù)情況下運(yùn)行良好。但是,如果您嘗試在大型數(shù)組中使用 () 函數(shù),它會(huì)運(yùn)行得更慢。
有一個(gè)更好更快的函數(shù) () 而不是使用 () 函數(shù)來創(chuàng)建唯一的數(shù)組。這個(gè)神奇的函數(shù)交換數(shù)組中每個(gè)元素的鍵值php函數(shù)實(shí)現(xiàn)數(shù)組去重,因?yàn)殒I值必須是唯一的,所以你會(huì)得到和()函數(shù)一樣的結(jié)果。
PHP 代碼:
/* 創(chuàng)建一個(gè)包含重復(fù)值的,一共四個(gè)元素的數(shù)組 */ $array = array('green','blue','orange','blue'); /* 翻轉(zhuǎn)數(shù)組,你將會(huì)得到唯一鍵值的數(shù)組 array('green'=>0,'blue'=>1,'orange'=>2); */ $array = array_flip($array); /* 然后再翻轉(zhuǎn)一次,將鍵和值重新放置,然后得到數(shù)組:array(0=>'green',1=>'blue',2=>'orange'); */ $array = array_flip($array); print_r($array)
運(yùn)行結(jié)果:
Array ( [0] => green [3] => blue [2] => orange )
因?yàn)槲覀円瞥艘恍┰兀瑪?shù)組看起來不像一個(gè)正常的序列。例如,我們可能得到:(0=>'A',2=>'B',5=>'C');。在某些情況下,這不是問題,但是如果您需要數(shù)組的鍵來維護(hù)數(shù)字的順序,則可以使用一兩種方法來解決鍵值亂序的問題。
使用修復(fù)陣列的鑰匙
添加的函數(shù)會(huì)對(duì)數(shù)組的鍵值進(jìn)行排序php函數(shù)實(shí)現(xiàn)數(shù)組去重,恢復(fù)到正常順序,如:0,1,2,3...
PHP 代碼:
運(yùn)行結(jié)果同上
第二種方式,使用
請(qǐng)注意,這種修復(fù)數(shù)組鍵的方法比使用 () 函數(shù)稍快。也可以結(jié)合上一步的()函數(shù)(該函數(shù)返回翻轉(zhuǎn)后的值)。然后當(dāng)你翻轉(zhuǎn)數(shù)組的值時(shí),鍵值是按照順序創(chuàng)建的。
PHP 代碼:
$array = array('green','blue','orange','blue'); $array = array_flip($array); /* 跟第一個(gè)例子一樣,但是現(xiàn)在我們先提取數(shù)組的鍵值 */ $array = array_keys($array); print_r($array)
相信看完本文的案例你已經(jīng)掌握了方法。更多精彩請(qǐng)關(guān)注php中文網(wǎng)其他相關(guān)文章!