国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

PHP遍歷數組的方法匯總

2024-05-04 23:34:50
字體:
來源:轉載
供稿:網友

php下最靈活的東西都是數組,很多數據都是通過數組的方式顯示,這里整理下數組的遍歷方法,大家可以根據需要選用。

今天有個朋友問我一個問題php遍歷數組的方法,告訴她了幾個。順便寫個文章總結下,如果總結不全還請朋友們指出

第一、foreach()

foreach()是一個用來遍歷數組中數據的最簡單有效的方法。

 

  1. <?php  
  2. $urlsarray('aaa','bbb','ccc','ddd');  
  3. foreach ($urls as $url){  
  4. echo "This Site url is $url! <br />";  
  5. }  
  6. ?>  

顯示結果:

 

 
  1. This Site url is aaa  
  2. This Site url is bbb  
  3. This Site url is ccc  
  4. This Site url is ddd 

第二、while() 和 list(),each()配合使用。

 

 
  1. <?php  
  2. $urlsarray('aaa','bbb','ccc','ddd');  
  3. while(list($key,$val)= each($urls)) {  
  4. echo "This Site url is $val.<br />";  
  5. }  
  6. ?>  

顯示結果:

 

 
  1. This Site url is aaa  
  2. This Site url is bbb  
  3. This Site url is ccc  
  4. This Site url is ddd  

第三、for()運用for遍歷數組

 

 
  1. <?php  
  2. $urlsarray('aaa','bbb','ccc','ddd');  
  3. for ($i= 0;$icount($urls); $i++){  
  4. $str$urls[$i];  
  5. echo "This Site url is $str.<br />";  
  6. }  
  7. ?>  

顯示結果:

 

 
  1. This Site url is aaa  
  2. This Site url is bbb  
  3. This Site url is ccc  
  4. This Site url is ddd  

有時候有人也在問這幾種遍歷數組的方法哪個更快捷些呢,下面做個簡單的測試就明白了

=========== 下面來測試三種遍歷數組的速度 ===========

一般情況下,遍歷一個數組有三種方法,for、while、foreach。其中最簡單方便的是foreach。下面先讓我們來測試一下共同遍歷一個有50000個下標的一維數組所耗的時間。

 

 
  1. <?php  
  2. $arrarray();  
  3. for($i= 0; $i< 50000; $i++){  
  4. $arr[]= $i*rand(1000,9999);  
  5. }  
  6. function GetRunTime()  
  7. {  
  8. list($usec,$sec)=explode(" ",microtime());  
  9. return ((float)$usec+(float)$sec);  
  10. }  
  11. ######################################  
  12. $time_start= GetRunTime();  
  13. for($i= 0; $icount($arr); $i++){  
  14. $str$arr[$i];  
  15. }  
  16. $time_end= GetRunTime();  
  17. $time_used$time_end$time_start;  
  18. echo 'Used time of for:'.round($time_used, 7).'(s)<br /><br />';  
  19. unset($str$time_start$time_end$time_used);  
  20. ######################################  
  21. $time_start= GetRunTime();  
  22. while(list($key$val)= each($arr)){  
  23. $str$val;  
  24. }  
  25. $time_end= GetRunTime();  
  26. $time_used$time_end$time_start;  
  27. echo 'Used time of while:'.round($time_used, 7).'(s)<br /><br />';  
  28. unset($str$key$val$time_start$time_end$time_used);  
  29. ######################################  
  30. $time_start= GetRunTime();  
  31. foreach($arr as$key=> $val){  
  32. $str$val;  
  33. }  
  34. $time_end= GetRunTime();  
  35. $time_used$time_end$time_start;  
  36. echo 'Used time of foreach:'.round($time_used, 7).'(s)<br /><br />';  
  37. ?>  

測試結果:

 

 
  1. Used time of for:0.0228429(s)  
  2. Used time of while:0.0544658(s)  
  3. Used time of foreach:0.0085628(s) 

經過反復多次測試,結果表明,對于遍歷同樣一個數組,foreach速度最快,最慢的則是while。從原理上來看,foreach是對數組副本進行操作(通過拷貝數組),而while則通過移動數組內部指標進行操作,一般邏輯下認為,while應該比foreach快(因為foreach在開始執行的時候首先把數組復制進去,而while直接移動內部指標。),但結果剛剛相反。原因應該是,foreach是PHP內部實現,而while是通用的循環結構。所以,在通常應用中foreach簡單,而且效率高。在PHP5下,foreach還可以遍歷類的屬性。

以上所述就是本文的全部內容了,希望大家能夠喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南江县| 广州市| 定兴县| 张家港市| 上杭县| 木兰县| 元朗区| 建阳市| 依兰县| 马尔康县| 华蓥市| 高清| 分宜县| 获嘉县| 景德镇市| 岳阳市| 闻喜县| 天峨县| 郴州市| 文成县| 苗栗县| 绥宁县| 曲靖市| 高清| 长治市| 漳州市| 定陶县| 堆龙德庆县| 平阳县| 晋城| 晋州市| 南岸区| 丰顺县| 尼木县| 沾化县| 河南省| 阳春市| 曲水县| 曲水县| 易门县| 万宁市|