php陣列指定元素去重,php 陣列元素快速去重

2021-10-25 20:38:09 字數 2244 閱讀 6149

搜尋熱詞

1.使用array_unique方法進行去重

對陣列元素進行去重,我們一般會使用array_unique方法,使用這個方法可以把陣列中的元素去重。

php;">

[1] => 2

[2] => 3

[3] => 4

[4] => 5

[5] => 6

[6] => 7

[7] => 8

[8] => 9

去重後,鍵值會不按順序,可以使用array_values把鍵值重新排序。

2.使用array_unique方法去重效率

php;">

php$arr = array();

// 建立100000個隨機元素的陣列

for($i=0; $i<100000; $i++){

$arr = mt_rand(1,99);

// 記錄開始時間

$starttime = getmicrotime();

// 去重

$arr = array_unique($arr);

// 記錄結束時間

$endtime = getmicrotime();

$arr = array_values($arr);

echo 'unique count:'.count($arr).'

echo 'run time:'.(float)(($endtime-$starttime)*1000).'ms

echo 'use memory:'.getusememory();

獲取使用記憶體

@return float

function getusememory(){

$use_memory = round(memory_get_usage(true)/1024,2).'kb';

return $use_memory;

獲取microtime

@return float

function getmicrotime(){

list($usec,$sec) = explode(' ',microtime());

return (float)$usec + (float)$sec;

unique count:99

run time:653.39303016663ms

use memory:5120kb

使用array_unique方法去重,執行時間需要約650ms,記憶體占用約5m

3.更快的陣列去重方法

php有乙個鍵值互換的方法array_flip,我們可以使用這個方法去重,因為鍵值互換,原來重複的值會變為相同的鍵。

然後再進行一次鍵值互換,把鍵和值換回來則可以完成去重。

php;">

php$arr = array();

// 建立100000個隨機元素的陣列

for($i=0; $i<100000; $i++){

$arr = mt_rand(1,99);

// 記錄開始時間

$starttime = getmicrotime();

// 使用鍵值互換去重

$arr = array_flip($arr);

$arr = array_flip($arr);

// 記錄結束時間

$endtime = getmicrotime();

$arr = array_values($arr);

echo 'unique count:'.count($arr).'

echo 'run time:'.(float)(($endtime-$starttime)*1000).'ms

echo 'use memory:'.getusememory();

獲取使用記憶體

@return float

function getusememory(){

$use_memory = round(memory_get_usage(true)/1024,microtime());

return (float)$usec + (float)$sec;

unique count:99

run time:12.840032577515ms

use memory:768kb

使用array_flip方法去重,執行時間需要約18ms,記憶體占用約2m

因此使用array_flip方法去重比使用array_unique方法執行時間減少98%,記憶體占用減少4/5;

總結

php陣列指定元素去重,php 陣列元素快速去重

1.使用array unique方法進行去重 對陣列元素進行去重,我們一般會使用array unique方法,使用這個方法可以把陣列中的元素去重。arr array 1,1,2,3,3,3,4,4,5,6,6,7,8,8,9,9,9 arr array unique arr arr array va...

php陣列指定元素去重,php陣列對陣列元素去重

最簡單的辦法利用php自帶的函式用array flip實現去重效果,另乙個方法是使用php的array flip函式來間接的實現去重效果 array flip是反轉陣列鍵和值的函式,他有個特性就是如果陣列中有二個值是一樣的,那麼反轉後會保留最後乙個鍵和 值.利用這個特性我們用他來間接的實現陣列的去重...

php 陣列去重

一維陣列的重複項 使用array unique函式即可,使用例項如下 bb array unique aa print r bb 二維陣列的重複項 對於二維陣列咱們分兩種情況討論,一種是因為某一鍵名的值不能重複,刪除重複項 另一種因為內部的一維陣列不能完全相同,而刪除重複項,下面舉例說明 因為某一鍵...