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

首頁 > 語言 > PHP > 正文

php 數(shù)組遍歷性能的比較

2024-09-04 11:46:24
字體:
供稿:網(wǎng)友

for循環(huán)只對數(shù)字索引有限,for和foreach遍歷結(jié)束后不需要對數(shù)據(jù)進(jìn)行reset()操作即可供下次遍歷,而each方法則需要,代碼如下:

  1. <?php 
  2. //a 
  3. $arr=array('a'=>'abc','b'=>123,'c'=>true); 
  4. //b 
  5. //$arr=range('a','d'); 
  6.  
  7. //1    
  8. for($i=0;$i<sizeof($arr);$i++) 
  9.     echo $arr[$i].', '
  10. echo '<br />'
  11.  
  12. //2 
  13. foreach($arr as $key
  14.     echo "$key, "
  15. echo '<br />'
  16.  
  17. //3 
  18. foreach($arr as $key=>$val
  19.     echo "$key-$val, "
  20. echo '<br />'
  21.  
  22. //4 
  23. reset($arr); 
  24. while($item=each($arr)){ 
  25.     echo $item['key'].'-'.$item['value'].', '
  26. }//開源代碼Vevb.com 
  27. echo '<br />'
  28.  
  29. //5 
  30. reset($arr); 
  31. while(list($key,$val)=each($arr)){ 
  32.     echo "$key-$val, "
  33. echo '<br />'
  34. ?> 

使用語句a $arr=array('a'=>'abc','b'=>123,'c'=>true); 對$arr進(jìn)行初始化得到數(shù)字索引數(shù)組,輸出如下:

, , ,abc, 123, 1,a-abc, b-123, c-1,a-abc, b-123, c-1,a-abc, b-123, c-1, 使用語句b $arr=range('a','d'); 對$arr進(jìn)行初始化得到關(guān)聯(lián)數(shù)組,輸出如下:

  1. a, b, c, d, 
  2. a, b, c, d, 
  3. 0-a, 1-b, 2-c, 3-d, 
  4. 0-a, 1-b, 2-c, 3-d, 
  5. 0-a, 1-b, 2-c, 3-d, 

經(jīng)過反復(fù)多次測試,結(jié)果表明,對于遍歷同樣一個數(shù)組,foreach速度最快,最慢的則是while。foreach比while大約快20% ~ 30%左右,隨后再把數(shù)組下標(biāo)增加到500000、5000000測試結(jié)果也一樣,但從原理上來看,foreach是對數(shù)組副本進(jìn)行操作(通過拷貝數(shù)組),而while則通過移動數(shù)組內(nèi)部指標(biāo)進(jìn)行操作,一般邏輯下認(rèn)為,while應(yīng)該比foreach快(因為foreach在開始執(zhí)行的時候首先把數(shù)組復(fù)制進(jìn)去,而while直接移動內(nèi)部指標(biāo)。),但結(jié)果剛剛相反,原因應(yīng)該是,foreach是PHP內(nèi)部實現(xiàn),而while是通用的循環(huán)結(jié)構(gòu).

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 通化县| 连城县| 改则县| 兴山县| 万荣县| 津南区| 儋州市| 伽师县| 金山区| 田东县| 潢川县| 来凤县| 吉木萨尔县| 禄劝| 大连市| 江油市| 拜泉县| 宜州市| 福安市| 阿城市| 三河市| 东乡族自治县| 黎城县| 南投市| 平果县| 莎车县| 民勤县| 辽源市| 达州市| 融水| 治多县| 玛沁县| 连山| 岐山县| 隆昌县| 新昌县| 尉犁县| 邯郸县| 田东县| 潮州市| 泽普县|