方法1 寫: while(list($key,$value) = each($arr))
{
}
reset($arr);
方法2 寫: foreach($arr as $key=>$value)
{
}
方法1是傳統的陣列取值方式,方法2則是較新的使用方式
而方法1的each()函式因為只會將指標移往當前的下一個,所以必須在最後加上reset()來重設,
方法2的foreach則會自動重設,所以不需要再使用reset
運作速度 寫:
- 代碼: 選擇全部
總運作次數: 100 次.
總運作時間: 0.0066659999999999 秒.
[color=brown]Method 1[/color] 運作時間:0.0042859999999999 秒.
[color=olive]Method 2[/color] 運作時間:0.002369 秒.
[color=olive]Method 2[/color] 比 [color=brown]Method 1[/color] 快[color=blue] 80.920219501899 [/color]%
- 代碼: 選擇全部
總運作次數: 100 次.
總運作時間: 0.005033 秒.
[color=brown]Method 1[/color] 運作時間:0.0032759999999999 秒.
[color=olive]Method 2[/color] 運作時間:0.001748 秒.
[color=olive]Method 2[/color] 比 [color=brown]Method 1[/color] 快[color=blue] 87.41418764302 [/color]%
- 代碼: 選擇全部
總運作次數: 100 次.
總運作時間: 0.005013 秒.
[color=brown]Method 1[/color] 運作時間:0.0032530000000001 秒.
[color=olive]Method 2[/color] 運作時間:0.0017509999999999 秒.
[color=olive]Method 2[/color] 比 [color=brown]Method 1[/color] 快[color=blue] 85.779554540272 [/color]%
運算一次的比較(省去方法1的reset) 寫:
- 代碼: 選擇全部
總運作次數: 1 次.
總運作時間: 0.000107 秒.
[color=brown]Method 1[/color] 運作時間:6.7000000000011E-005 秒.
[color=olive]Method 2[/color] 運作時間:3.0999999999975E-005 秒.
[color=olive]Method 2[/color] 比 [color=brown]Method 1[/color] 快[color=blue] 116.12903225827 [/color]%
- 代碼: 選擇全部
總運作次數: 1 次.
總運作時間: 0.00012299999999998 秒.
[color=brown]Method 1[/color] 運作時間:7.5999999999965E-005 秒.
[color=olive]Method 2[/color] 運作時間:3.6999999999954E-005 秒.
[color=olive]Method 2[/color] 比 [color=brown]Method 1[/color] 快[color=blue] 105.40540540557 [/color]%
- 代碼: 選擇全部
總運作次數: 1 次.
總運作時間: 0.00010599999999999 秒.
[color=brown]Method 1[/color] 運作時間:6.600000000001E-005 秒.
[color=olive]Method 2[/color] 運作時間:3.1000000000003E-005 秒.
[color=olive]Method 2[/color] 比 [color=brown]Method 1[/color] 快[color=blue] 112.90322580646 [/color]%
新寫法與舊寫法的差異應該很容易就能看得出來了,給大家參考看看囉 [quote="ETERNAL"]<u>積分 +1</u>
謝謝分享經驗
補充一下foreach在以前perl就有了
php後來才加入這個函數
不過大部分的人還是習慣用舊的方式while來取值,連書上也是
不知跟for($i;$i;count($arr);$i++)
比較起來效率上如何
at 2007-02-26 11:05 pm[/point]