程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 關於PHP數組遍歷對比測試

關於PHP數組遍歷對比測試

編輯:關於PHP編程

PHP還是比較常用的,於是我研究了一下PHP數組遍歷,在這裡拿出來和大家分享一下,希望對大家有用。關於PHP數組遍歷,其實很多人都做過測試了,像http://www.lilov.org/post/18.html這樣,不過這些討論其實還是太簡單,在這裡我將更全面的討論一下這個問題,雖然看起來有點吹毛求疵,不過做程序就應該抱著這種思想,不斷的精益求精~不是麼:cool:。

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

測試一:PHP4.4.1下,使用一維數組

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

可以看出7最快,不過這種方式不會返回下標,如果需要使用下標這種方法就不符合要求了。其次是2,看出來這種寫法和1有什麼不同了麼?2在循環前計算數組的長度,而1每次循環都要計算數組的長度所以2比1更高效。不過2和1都是一樣的,只能操作那種下標是數字而且數字連續的數組。第三是6,也就是一般討論中認為最快的方法,如果你操作數組的下標同時下標有是非連續數字那麼毫無疑問應該選擇這個方法,至於慢的就不多說了,忘記這些用法吧:roll:

測試二:PHP4.4.1下,使用二位數組


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved