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