国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 自贡市| 北安市| 淮滨县| 甘洛县| 崇明县| 额尔古纳市| 察隅县| 南乐县| 霞浦县| 望奎县| 巴彦县| 东至县| 寿光市| 东台市| 盐山县| 德令哈市| 桃园县| 新平| 越西县| 东乌珠穆沁旗| 揭阳市| 江达县| 新昌县| 丹巴县| 深州市| 长子县| 彩票| 宣武区| 比如县| 怀化市| 阜新| 南投市| 浦北县| 正蓝旗| 大名县| 齐河县| 南岸区| 建昌县| 滨州市| 宝应县| 阿瓦提县|