php 陣列元素快速去重

2021-09-07 13:15:52 字數 2250 閱讀 5688

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

<?php

$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_values($arr);

print_r($arr);

?>

輸出:

array

( [

0] => 1

[1] => 2

[2] => 3

[3] => 4

[4] => 5

[5] => 6

[6] => 7

[7] => 8

[8] => 9

)

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

<?php

$arr =array();

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

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

//記錄開始時間

$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()/**

* 獲取microtime

* @return float */

function getmicrotime()

?>

unique count:99 

run time:653.39303016663ms 

use memory:5120kb

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

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

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

<?php

$arr =array();

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

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

//記錄開始時間

$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()/**

* 獲取microtime

* @return float */

function getmicrotime()

?>

unique count:99 

run time:12.840032577515ms 

use memory:768kb

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

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

php 陣列元素快速去重

對陣列元素進行去重,我們一般會使用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 values arr print r arr 輸出...

php 陣列元素高速去重

對陣列元素進行去重。我們通常會使用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 values arr print r arr 輸出...

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

搜尋熱詞 1.使用array unique方法進行去重 對陣列元素進行去重,我們一般會使用array unique方法,使用這個方法可以把陣列中的元素去重。php 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 去重後,鍵值會不按順序,可以使用array values把鍵值重新排序。...