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

首頁 > 語言 > PHP > 正文

php中數組遍歷循環實現程序

2024-09-04 11:45:53
字體:
來源:轉載
供稿:網友

在php中對數組遍歷用得最多要算是foreac,while,for這幾種方法了,下面我們來介紹這三種遍歷數組的實現程序代碼吧。

經常會有人問我,PHP的數組,如果用foreach來訪問,遍歷的順序是固定的么? 以什么順序遍歷呢?比如如下代碼:

  1. <?php$arr['laruence'] = 'huixinchen'
  2. $arr['yahoo'] = 2007; 
  3. $arr['baidu'] = 2008; 
  4. foreach ($arr as $key => $val)  
  5. //結果是什么? 

又比如如下代碼:

  1. <?php 
  2. $arr[2] = 'huixinchen'
  3. $arr[1] = 2007;$arr[0] = 2008; 
  4. foreach ($arr as $key => $val)  
  5. //現在結果又是什么? 

當我們使用each/next系列函數來遍歷的時候,也是通過移動數組的內部指針而實現了順序遍歷,這里有一個問題,比如如下代碼:

  1. <?php 
  2. $arr = array(1,2,3,4,5); 
  3. foreach ($arr as $v) {//可以獲取}  
  4. while (list($key$v) = each($arr)) 
  5.  {//獲取不到} 
  6. ?> 

了解到我剛才介紹的知識,那么這個問題也就很明朗了,因為foreach會自動reset,而while這塊不會reset,所以在foreach結束以后,pInternalPointer指向數組最末端, while語句塊當然訪問不到了,解決的辦法就是在each之前,先reset數組的內部指針.

也就是說, PHP中遍歷數組的順序, 是和元素的添加先后相關的, 那么, 現在我們就很清楚的知道,文章開頭的問題的輸出是:

huixinchen,2007,2008

所以,如果你想在數字索引的數組中按照索引大小遍歷,那么你就應該使用for,而不是foreach,代碼如下:

  1. for($i=0,$l=count($arr); $i<$l$i++)  
  2. //這個時候,不能認為是順序遍歷(線性遍歷)} 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 盐亭县| 福安市| 江都市| 论坛| 东阳市| 昌图县| 临夏市| 和平县| 乌兰浩特市| 新蔡县| 澎湖县| 桂阳县| 九龙县| 大安市| 吴忠市| 冀州市| 宣化县| 阳原县| 化州市| 周口市| 秀山| 临高县| 镇江市| 阳新县| 德令哈市| 余干县| 施甸县| 富锦市| 巨野县| 陕西省| 西乡县| 介休市| 珲春市| 石首市| 榆树市| 大方县| 栾城县| 永兴县| 衡东县| 三江| 巴南区|