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

首頁 > 語言 > PHP > 正文

PHP特定函數foreach遍歷一二維數組

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

foreach遍歷數組的好是可以不知道數組的長度從而讀出數組的key,name出來了,在php的foreach中有兩種方法,arr_name as $value 和arr_name as $key => $value了,這個是針對不同維數的數組的哦,下面來一起來看看吧.

foreach有兩種用法:

一、第一種用法代碼如下:

  1. foreach(arr_name as $value)   
  2. {      
  3.       statement;   
  4.  } 

解析:arr_name是要遍歷的數組名,每次循環,arr_name數組當前元素的值都被賦給$value,而且數組內部下標也要下移一個,也就是說下次循環得到的將是下一個元素

二、第二種用法代碼如下:

  1. foreach(arr_name as $key => $value)   
  2.  {      //開源軟件:Vevb.com 
  3.         statement;     
  4. }  

解析:與第一個的不同是,這個除了吧當前元素的值賦給$value外,每次循環當前元素的鍵值也會被賦給$key,鍵值可能是下標或字符串。如row[0]=1中的"0”,row[id]="001"中的"id”.其中0與id都是鍵值.

先來看第一個語句,這個語句比較簡單,array_expression指的是一個數組表達式,as $val語句將順序取得該數組的值并保存到$val變量中,此種方法只能取得數組內的值,而不能取得數組的下標索引值,例如如下代碼:

  1. $myArray=array("1"=>"val1","2"=>"val2","3"=>"val3"); 
  2.  
  3. foreach($myArray as $val) { 
  4.     echo $val."<br />"
  5. //執行結果: 
  6. val1 
  7. val2 
  8. val3 

再來看看第二種格式,第二種格式除了能像第一種格式一樣得到數組內元素的值外,還能得到元素的索引值,并保存到$key變量中,如果數組的索引值未經過人工設定,則返回系統默認的設定值.

先看一個簡單的一維數組,代碼如下:

  1. $myArray=array("1"=>"val1","2"=>"val2","3"=>"val3"); 
  2. foreach($myArray as $key=>$val) { 
  3.     echo $key."=>".$val."<br />"
  4. //執行結果: 
  5. 1=>val1 
  6. 2=>val2 
  7. 3=>val3 

接下來我們再來看一個復雜一點的二維數組遍歷,程序如下:

  1. $myArray=array
  2.     "1"=>array("11"=>"val11","12"=>"val12","13"=>"val13"), 
  3.     "2"=>array("21"=>"val21","22"=>"val22","23"=>"val23"), 
  4.     "3"=>array("31"=>"val31","32"=>"val32","33"=>"val33"
  5. ); 
  6.  
  7. echo "<ul>"
  8. foreach($myArray as $key=>$val) { 
  9.     echo "<li>".$key."</li>"
  10.     //判斷$val的值是否是一個數組,如果是,則進入下層遍歷 
  11.     if (is_array($val)) {      
  12.         echo "<ul>"
  13.             foreach($val as $key=>$val) { 
  14.             echo "<li>".$key."=>".$val."</li>"
  15.         } 
  16.         echo "</ul>"
  17.     } 
  18.  
  19. echo "</ul>"

執行結果:

<ul> 和 <li>是 標簽,作用是顯示個實心小圓點和空心小圓點,由于上面的是一個二維數組,在第一次遍歷后所得到的$val值將是一個數組,所以我在遍歷中加了一個判斷,以便進行二層數組遍歷.

再通過一個實例解惑,代碼如下:

  1. $a = array("1"=>"語文","2"=>"數學","3"=>"英語");  
  2. $b = array("1"=>"95","2"=>"99","3"=>"92");  
  3. foreach($a as $key=>$value){  
  4.     echo $value;  
  5.     echo $b[$key]."<br>"
  6. //執行結果: 
  7. 語文95 
  8. 數學99 
  9. 英語92 

問題是為什么輸出數組$b中的值要用$b[$key]而不是$b[$value]? why? 代碼如下:

$a = array("1"=>"語文","2"=>"數學","3"=>"英語");

上面這個和下面這個是完全一樣的.

  1. $a[1]="語文"
  2. $a[2]="數學"
  3. $a[3]="英語"

我們輸出上面的數組元素是怎么輸出的呢?肯定是:

  1. echo $a[1]; 
  2. echo $a[2]; 
  3. echo $a[3]; 

對不對?簡單說foreach 它的格式是這樣的:

foreach(數組名 as 下標=>值)

下標也就是上面的$a[1],這里的1就是數組的下標,到這你應該明白了,為什么是$a[$key]這樣輸出.

好了到這里關于php foreach就介紹完了,foreach只能遍歷一二維數組了,如果是三維數組我們需要進行遞歸操作了.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 萨迦县| 通江县| 潍坊市| 怀宁县| 正阳县| 横峰县| 大兴区| 信丰县| 长治县| 涟源市| 三穗县| 宿州市| 沁源县| 行唐县| 晋城| 镇安县| 普兰县| 柞水县| 南召县| 孟津县| 伊春市| 阿坝| 新建县| 温宿县| 连州市| 托克托县| 尉犁县| 瑞昌市| 安乡县| 岑溪市| 蒲江县| 比如县| 赤水市| 合川市| 雷山县| 葫芦岛市| 高碑店市| 长寿区| 观塘区| 乐平市| 株洲市|