久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

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

本文主要介紹了php查找數(shù)組元素提高效率的方法,具有很好的參考價值。下面跟著小編一起來看下吧

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);
}

// 記錄結(jié)束時間
$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]);
}

// 記錄結(jié)束時間
$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)容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持!

【網(wǎng)站聲明】本站除付費源碼經(jīng)過測試外,其他素材未做測試,不保證完整性,網(wǎng)站上部分源碼僅限學習交流,請勿用于商業(yè)用途。如損害你的權(quán)益請聯(lián)系客服QQ:2655101040 給予處理,謝謝支持。

相關(guān)文檔推薦

這篇文章主要介紹了PHP有序表查找之插值查找算法,簡單分析了插值查找算法的概念、原理并結(jié)合實例形式分析了php實現(xiàn)針對有序表插值查找的相關(guān)操作技巧,需要的朋友可以參考下
下面小編就為大家分享一篇ThinkPHP整合datatables實現(xiàn)服務(wù)端分頁的示例代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
下面小編就為大家分享一篇PHP實現(xiàn)APP微信支付的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
這篇文章主要介紹了PHP實現(xiàn)的多維數(shù)組排序算法,結(jié)合實例形式對比分析了php針對多維數(shù)組及帶有鍵名的多維數(shù)組進行排序相關(guān)操作技巧與注意事項,需要的朋友可以參考下
這篇文章主要為大家詳細介紹了php結(jié)合ajaxuploadfile實現(xiàn)無刷新文件上傳功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本篇文章給大家詳細介紹了PHP開發(fā)接口使用RSA進行加密解密方法,對此有興趣的朋友可以學習下。
主站蜘蛛池模板: 亚洲欧美日本在线 | 日韩av网址在线观看 | 一区二区中文 | 九九国产| 国产精品免费观看视频 | 中文字幕日韩一区 | 99视频免费看 | 国产免费一区二区三区网站免费 | 精品国产高清一区二区三区 | 亚洲综合在线一区二区 | 国产精品日本一区二区在线播放 | 久久久久精 | 91亚洲国产 | 亚洲久久久 | 97视频免费 | 亚洲国产一区二区在线 | 久久久久久久久久久爱 | av资源在线看 | 成人做爰9片免费看网站 | 日韩精品一区二区三区中文在线 | 成人欧美一区二区三区在线播放 | 国产欧美精品 | 成人国产精品一级毛片视频毛片 | 久久99精品国产99久久6男男 | 亚洲精品久久视频 | 欧美一区二区三区在线观看视频 | 人人人人爽 | 欧美专区日韩专区 | av一级久久 | 9久久精品 | 国产一区二区精品在线 | 黑人性hd| 中文字幕一区二区视频 | 91精品久久久久 | 四虎成人免费视频 | 国产精品美女久久久久aⅴ国产馆 | 91精品国产91| 欧美一区二区三区四区在线 | 91亚洲精品久久久电影 | 在线视频 中文字幕 | av性色全交蜜桃成熟时 |