国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

php 查找數(shù)組元素提高效率的方法詳解

2024-05-04 23:57:03
字體:
供稿:網(wǎng)友

1.php in_array方法說明

PHP查找數(shù)組元素是否存在,一般會使用in_array方法。

bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )

參數(shù)說明:

needle

待搜索的值,如果needle是字符串,比較是區(qū)分大小寫的。

haystack

用來比較的數(shù)組

strict

如果第三個參數(shù) strict 的值為 TRUE 則 in_array() 函數(shù)還會檢查 needle 的類型是否和 haystack 中的相同

返回值

如果找到 needle 則返回 TRUE,否則返回 FALSE

2.in_array查找元素效率

當比較的數(shù)組haystack較大時,in_array效率會很低

例子:使用in_array對有10萬個元素的數(shù)組進行1000次比較

<?php$arr = array();// 創(chuàng)建10萬個元素的數(shù)組for($i=0; $i<100000; $i++){ $arr[] = $i;}// 記錄開始時間$starttime = getMicrotime();// 隨機創(chuàng)建1000個數(shù)字使用in_array比較for($j=0; $j<1000; $j++){ $str = mt_rand(1,99999); in_array($str, $arr);}// 記錄結束時間$endtime = getMicrotime();echo 'run time:'.(float)(($endtime-$starttime)*1000).'ms<br>';/** * 獲取microtime * @return float */function getMicrotime(){ list($usec, $sec) = explode(' ', microtime()); return (float)$usec + (float)$sec;}?>

run time:2003.6449432373ms

使用in_array判斷元素是否存在,在10萬個元素的數(shù)組中比較1000次,運行時間需要約2秒

3.提高查找元素效率方法

我們可以先使用array_flip進行鍵值互換,然后使用isset方法來判斷元素是否存在,這樣可以提高效率。

例子:使用array_flip先進行鍵值互換,再使用isset方法判斷,在10萬個元素的數(shù)組中比較1000次

<?php$arr = array();// 創(chuàng)建10萬個元素的數(shù)組for($i=0; $i<100000; $i++){ $arr[] = $i;}// 鍵值互換$arr = array_flip($arr);// 記錄開始時間$starttime = getMicrotime();// 隨機創(chuàng)建1000個數(shù)字使用isset比較for($j=0; $j<1000; $j++){ $str = mt_rand(1,99999); isset($arr[$str]);}// 記錄結束時間$endtime = getMicrotime();echo 'run time:'.(float)(($endtime-$starttime)*1000).'ms<br>';/** * 獲取microtime * @return float */function getMicrotime(){ list($usec, $sec) = explode(' ', microtime()); return (float)$usec + (float)$sec;}?>

run time:1.2781620025635ms

使用array_flipisset判斷元素是否存在,在10萬個元素的數(shù)組中比較1000次,運行時間需要約1.2毫秒

因此,對于大數(shù)組進行比較,使用array_flipisset方法會比in_array效率高很多。

以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持VeVb武林網(wǎng)!


注:相關教程知識閱讀請移步到PHP教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 西畴县| 朔州市| 江阴市| 遂平县| 会昌县| 辽中县| 济南市| 综艺| 镇坪县| 新建县| 新野县| 濮阳县| 田东县| 桃园县| 澳门| 莱西市| 安乡县| 黔西县| 怀化市| 怀远县| 晋州市| 定日县| 南陵县| 治县。| 房产| 明水县| 香格里拉县| 杨浦区| 城口县| 怀来县| 金湖县| 长治县| 和龙市| 建湖县| 庄河市| 吉首市| 罗江县| 维西| 怀远县| 金华市| 九江市|