PHP 遍历数组的方法汇总
From:?http://www.cnblogs.com/jamespb/archive/2011/09/01/2161673.html
1. foreach()
foreach()是一個用來遍歷數組中數據的最簡單有效的方法。
#example1:
顯示結果:
Do you like red??
Do you like blue??
Do you like green??
Do you like yellow?
2. while()
while() 通常和 list(),each()配合使用。
#example2:
顯示結果:
Other list of red.?
Other list of blue.?
Other list of green.?
Other list of yellow.
3. for()
#example3:
顯示結果:
the number is zero.?
the number is one.?
the number is two.
========= 以下是函數介紹 ==========
key()
mixed key(array input_array)
key()函數返回input_array中位于當前指針位置的鍵元素。
#example4
顯示結果:
Can you name the capitals of these states??
Ohio?
Towa?
Arizona
reset()
mixed reset(array input_array)
reset()函數用來將input_array的指針設置回數組的開始位置。如果需要在一個腳本中多次查看或處理同一個數組,就經常使用這個函數,另外這個函數還常用于排序結束時。
#example5 - 在#example1上追加代碼
顯示結果:
Do you like red??
Do you like blue??
Do you like green??
Do you like yellow??
0 => red?
1 => blue?
2 => green?
3 => yellow
注意:將一個數組賦值給另一個數組時會重置原來的數組指針,因此在上例中如果我們在循環內部將 $colors 賦給了另一個變量的話將會導致無限循環。?
例如將 $s1 = $colors; 添加到while循環內,再次執行代碼,瀏覽器就會無休止地顯示結果。
each()
array each(array input_array)
each()函數返回輸入數組當前鍵/值對,并將指針推進一個位置。返回的數組包含四個鍵,鍵0和key包含鍵名,而鍵1和value包含相應的數據。如果執行each()前指針位于數組末尾,則返回FALSE。
#example6
顯示結果:
Array ( [1] => Columbus [value] => Columbus [0] => Ohio [key] => Ohio )
current(),next(),prev(),end()
mixed current(array target_array)
current()函數返回位于target_array數組當前指針位置的數組值。與next()、prev()、和end()函數不同,current()不移動指針。?
next()函數返回緊接著放在當前數組指針的下一個位置的數組值。?
prev()函數返回位于當前指針的前一個位置的數組值,如果指針本來就位于數組的第一個位置,則返回FALSE。?
end()函數將指針移向target_array的最后一個位置,并返回最后一個元素。
#example7
顯示結果:
apple?
orange?
apple?
banana
=========== 下面來測試三種遍歷數組的速度 ===========
一般情況下,遍歷一個數組有三種方法,for、while、foreach。其中最簡單方便的是foreach。下面先讓我們來測試一下共同遍歷一個有50000個下標的一維數組所耗的時間。
測試環境:?
Intel Core Due2 2GHz?
2GB 1067MHz DDR3?
Mac OS X 10.5.7?
Apache 2.0.59?
MySQL 5.0.41?
PHP 5.2.6
#example8
測試結果:
Used time of for:0.0228429(s)
Used time of while:0.0544658(s)
Used time of foreach:0.0085628(s)
經過反復多次測試,結果表明,對于遍歷同樣一個數組,foreach速度最快,最慢的則是while。從原理上來看,foreach是對數組副本進行操作(通過拷貝數組),而while則通過移動數組內部指標進行操作,一般邏輯下認為,while應該比foreach快(因為foreach在開始執行的時候首先把數組復制進去,而while直接移動內部指標。),但結果剛剛相反。原因應該是,foreach是PHP內部實現,而while是通用的循環結構。所以,在通常應用中foreach簡單,而且效率高。在PHP5下,foreach還可以遍歷類的屬性。
轉載于:https://www.cnblogs.com/joeblackzqq/p/4428280.html
總結
以上是生活随笔為你收集整理的PHP 遍历数组的方法汇总的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第三次作业:个人项目-小学四则运算 “软
- 下一篇: php定时执行原理