自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

關(guān)于PHP數(shù)組遍歷對(duì)比測(cè)試

開(kāi)發(fā) 后端
文章做出兩個(gè)關(guān)于PHP數(shù)組遍歷的測(cè)試,一是PHP4.4.1下,使用一維數(shù)組,二是PHP4.4.1下,使用二位數(shù)組,希望對(duì)大家有幫助。

PHP還是比較常用的,于是我研究了一下PHP數(shù)組遍歷,在這里拿出來(lái)和大家分享一下,希望對(duì)大家有用。關(guān)于PHP數(shù)組遍歷,其實(shí)很多人都做過(guò)測(cè)試了,像http://www.lilov.org/post/18.html這樣,不過(guò)這些討論其實(shí)還是太簡(jiǎn)單,在這里我將更全面的討論一下這個(gè)問(wèn)題,雖然看起來(lái)有點(diǎn)吹毛求疵,不過(guò)做程序就應(yīng)該抱著這種思想,不斷的精益求精~不是么:cool:。

首先,PHP數(shù)組遍歷的方式for、while、foreach不再多說(shuō)了,不知道的可以自己去PHP官方查手冊(cè),但是for、while、foreach遍歷數(shù)組的寫(xiě)法也有不同,那么效果呢,接著看就知道咯~程序改自上面那個(gè)鏈接中Lilov所寫(xiě)的程序,具體內(nèi)容可以下載測(cè)試源文件改名為array_check.php后就可以運(yùn)行

測(cè)試一:PHP4.4.1下,使用一維數(shù)組

編號(hào) 語(yǔ)句 時(shí)間
1 for($i = 0; $i < $num = count($arr); $i++) 0.1048162(s)
2 for($i = 0, $num = count($arr); $i < $num; $i++) 0.0698998(s)
3 while(list($key, $val) = each($arr)) 0.1437800(s)
4 while(list(, $val) = each($arr)) 0.1226320(s)
5 while(list($key, ) = each($arr)) 0.1119628(s)
6 foreach($arr as $key => $val) 0.0972550(s)
7 foreach($arr as $val) 0.0649691(s)

#T#可以看出7最快,不過(guò)這種方式不會(huì)返回下標(biāo),如果需要使用下標(biāo)這種方法就不符合要求了。其次是2,看出來(lái)這種寫(xiě)法和1有什么不同了么?2在循環(huán)前計(jì)算數(shù)組的長(zhǎng)度,而1每次循環(huán)都要計(jì)算數(shù)組的長(zhǎng)度所以2比1更高效。不過(guò)2和1都是一樣的,只能操作那種下標(biāo)是數(shù)字而且數(shù)字連續(xù)的數(shù)組。第三是6,也就是一般討論中認(rèn)為最快的方法,如果你操作數(shù)組的下標(biāo)同時(shí)下標(biāo)有是非連續(xù)數(shù)字那么毫無(wú)疑問(wèn)應(yīng)該選擇這個(gè)方法,至于慢的就不多說(shuō)了,忘記這些用法吧:roll:

測(cè)試二:PHP4.4.1下,使用二位數(shù)組

編號(hào) 語(yǔ)句 時(shí)間
1 for($i = 0; $i < $num = count($arr); $i++) 0.0824819(s)
2 for($i = 0, $num = count($arr); $i < $num; $i++) 0.0523129(s)
3 while(list($key, $val) = each($arr)) 0.1273971(s)
4 while(list(, $val) = each($arr)) 0.0961161(s)
5 while(list($key, ) = each($arr)) 0.1245570(s)
6 foreach($arr as $key => $val) 0.0764248(s)
7 foreach($arr as $val) 1.1415598(s)


結(jié)果發(fā)生了重大變化

最快的是2,因?yàn)閒or并不會(huì)管多維的問(wèn)題,所以和一維數(shù)組時(shí)相比速度并沒(méi)有發(fā)生太大的變化(至于為什么比一維還快,這個(gè)我只能說(shuō)受文件中運(yùn)算的影響....這種影響的而且確存在,用PEAR的Benchmark類測(cè)試的時(shí)候我就發(fā)現(xiàn)測(cè)試1次、100次、1000次得到的時(shí)間差別很大)

其次是6,同測(cè)試一中所說(shuō),如果2不能用(也就是下標(biāo)不連續(xù)),6毫無(wú)疑問(wèn)是***的選擇而令人跌破眼鏡的是7,竟然是最慢的,而且比第二慢的還要慢10倍...這個(gè)問(wèn)題實(shí)在令人費(fèi)解,后來(lái)我又做過(guò)比較細(xì)致的測(cè)試,發(fā)現(xiàn)7這種方法,主要受元素個(gè)數(shù)的影響,如果一維10個(gè)元素,那么如果第二維都有8個(gè)元素則7的速度和6幾乎一樣,如果一維30個(gè)元素,那么二維是6個(gè)元素時(shí)7和6速度基本一樣。但是如果一維1000個(gè)元素二維元素超過(guò)3個(gè)那么7就會(huì)比6慢很多了。

 

責(zé)任編輯:田樹(shù) 來(lái)源: 博客
相關(guān)推薦

2009-11-17 15:07:16

PHP數(shù)組遍歷

2009-11-18 15:05:56

PHP遞歸數(shù)組

2009-11-17 15:00:19

PHP遍歷數(shù)組

2009-11-18 11:30:26

PHP數(shù)組排序

2009-11-17 15:57:26

PHP數(shù)組合并

2009-11-17 17:07:01

PHP關(guān)聯(lián)數(shù)組

2009-11-17 09:46:31

PHP二維數(shù)組賦值

2009-11-16 17:59:13

PHP數(shù)組轉(zhuǎn)字符串

2009-11-17 15:33:26

PHP數(shù)組元素

2021-11-05 06:57:49

數(shù)組對(duì)象遍歷器

2009-11-17 16:09:04

PHP二維數(shù)組排序

2014-05-30 09:08:42

排序算法測(cè)試

2009-11-17 15:13:28

PHP數(shù)組

2012-02-22 14:18:06

測(cè)試測(cè)試人員

2009-02-01 09:29:44

2024-10-07 08:59:47

sleepwait線程

2021-03-29 12:01:00

遍歷數(shù)組for循環(huán)

2011-07-12 17:06:43

PHP

2013-07-03 11:28:47

2009-12-04 14:41:11

PHP數(shù)組變成JSON
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)