PHP編程快速實(shí)現(xiàn)數(shù)組去重的方法,結(jié)合實(shí)例形式分析
2021-06-25
本文主要向大家介紹PHP編程中快速實(shí)現(xiàn)數(shù)組去重的方法php函數(shù)實(shí)現(xiàn)數(shù)組去重,并結(jié)合實(shí)例分析PHP數(shù)組去重的功能和使用技巧。有需要的朋友可以參考一下,希望能幫到你。
概述
使用PHP的()函數(shù)可以讓你傳遞一個(gè)數(shù)組,然后去除重復(fù)值并返回一個(gè)具有唯一值的數(shù)組。此功能在大多數(shù)情況下運(yùn)行良好。但是,如果您嘗試在大型數(shù)組中使用 () 函數(shù),它會運(yùn)行得更慢。
有一個(gè)更好更快的函數(shù) () 而不是使用 () 函數(shù)來創(chuàng)建唯一的數(shù)組。這個(gè)神奇的函數(shù)交換數(shù)組中每個(gè)元素的鍵值,因?yàn)殒I值必須是唯一的,所以你會得到和()函數(shù)一樣的結(jié)果。
一種更快實(shí)現(xiàn) PHP 數(shù)組重復(fù)數(shù)據(jù)刪除的方法
/* 創(chuàng)建一個(gè)包含重復(fù)值的,一共四個(gè)元素的數(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);
因?yàn)槲覀円瞥艘恍┰?,?shù)組看起來不像一個(gè)正常的序列。例如,我們可能會得到:
array(0=>'A',2=>'B',5=>'C');
在某些情況下,這不是問題php函數(shù)實(shí)現(xiàn)數(shù)組去重,但是如果需要數(shù)組的key值來維護(hù)數(shù)字的順序,可以使用一兩種方法來解決key亂序的問題價(jià)值。
使用修復(fù)陣列的鑰匙
添加的函數(shù)會對數(shù)組的鍵值進(jìn)行排序,恢復(fù)到正常順序,如:0,1,2,3...
$array = array('green','blue','orange','blue'); $array = array_flip($array); $array = array_flip($array); /* 使用array_merge()函數(shù)修復(fù)鍵值*/ $array = array_merge($array);
第二種方式,使用
請注意,這種修復(fù)數(shù)組鍵的方法比使用 () 函數(shù)稍快。也可以結(jié)合上一步的()函數(shù)(該函數(shù)返回翻轉(zhuǎn)后的值)。然后當(dāng)你翻轉(zhuǎn)數(shù)組的值時(shí),鍵值會按照順序創(chuàng)建。
$array = array('green','blue','orange','blue'); $array = array_flip($array); /* 跟第一個(gè)例子一樣,但是現(xiàn)在我們先提取數(shù)組的鍵值 */ $array = array_keys($array);