国产探花免费观看_亚洲丰满少妇自慰呻吟_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還可以遍歷類的屬性。

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 贵阳市| 桓台县| 宁晋县| 乐陵市| 吉隆县| 沙河市| 新绛县| 文昌市| 略阳县| 枣强县| 峨边| 右玉县| 宜兴市| 闸北区| 景宁| 双江| 海门市| 枝江市| 诸暨市| 韶关市| 济源市| 琼结县| 双城市| 龙川县| 中宁县| 阳曲县| 旌德县| 宜兴市| 慈利县| 瑞丽市| 紫金县| 桐庐县| 革吉县| 南康市| 台北市| 即墨市| 崇州市| 迭部县| 玉屏| 南投市| 犍为县|