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