亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

php數組的遍歷函數與方法例子

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

php中數組遍歷方法有很多種,如有:for,foreach,while(),list(),each()這些函數與方法都要我們在數組遍歷中會用到的,下面給大家介紹一下.

1. 使用for語句循環遍歷數組

a. 其它語言(只有這一種方式) 

b. PHP中這種方式不是我們首選方式 

c. 數組必須是索引數組,而且下標還必須是連續的 索引數組下標還可以不連序,數組還有關聯數組)

PHP實例代碼如下:

  1. <?php 
  2. /* 
  3. * 我們想要在遍歷的過程中改變以下數組中某些元素的值 
  4. */ 
  5. $people = Array( 
  6. Array(’name’ => ‘Kalle’, ’salt’ => 856412), 
  7. Array(’name’ => ‘Pierre’, ’salt’ => 215863) 
  8. ); 
  9. for($i = 0; $i < sizeof($people); ++$i
  10. $people[$i]['salt'] = rand(000000, 999999); 
  11. ?> 

以上代碼的問題,在于for的第二個表達式會導致代碼執行很慢--因為每次循環時都要 計算一遍數組的長度,由于數組的長度始終不變,我們可以用一個中間變量來存儲數組長度,然后用這個變量作為for循環的第二個表達式,這樣在循環的時候就可以直接使用該變量的值,不用每次重新計算,代碼如下:

  1. <?php 
  2. $people = Array( 
  3. Array(’name’ => ‘Kalle’, ’salt’ => 856412), 
  4. Array(’name’ => ‘Pierre’, ’salt’ => 215863) 
  5. ); 
  6. for($i = 0, $size = sizeof($people); $i < $size; ++$i
  7. $people[$i]['salt'] = rand(000000, 999999); 
  8. ?> 

2.使用foreach語句循環遍歷數組

  1. foreach(數組變量 as 變量值){  
  2.  循環體  

a.循環次數由數組的元素個數決定 

b.每一次循環都會將數組中的元素分別賦值給后面變量

  1. foreach(數組變量 as 下標變量=> 值變量){ 

foreach遍歷3維數組:

  1. //foreach循環一個3維數組 
  2. /* 
  3. $biaoge=array
  4. "市場部"=>array
  5. array(1,"gaomou1","jingli11",4000), 
  6. array(2,"gaomou2","jingli22",4000), 
  7. array(3,"gaomou3","jingli33",4000) 
  8.  ), 
  9. "客服部"=>array
  10. array(1,"gao1","li11",4000), 
  11. array(2,"gao2","li22",4000), 
  12. array(3,"gao3","li33",4000) 
  13. ), 
  14. "業務部"=>array
  15.  array(1,"mou1","jing11",4000), 
  16.  array(2,"mou2","jing22",4000), 
  17.  array(3,"mou3","jing33",4000) 
  18.  ); 
  19. foreach($biaoge as $key=>$value){ 
  20. echo '<table align="center" width="600" border="1">'
  21. echo '<caption>聯系表</caption>'
  22. echo '<tr bgcolor="#dddddd">'
  23. echo '<th>標號</th><th>名字</th><th>職位</th><th>工資</th></tr>'
  24. foreach($value as $row){ 
  25. if($row%2==0){ 
  26. $bg="#ffffff"
  27.  }else
  28.  $bg="#dddddd"
  29.  } 
  30.  echo '<tr bgcolor='.$bg.'>'
  31.  foreach($row as $col){ 
  32.  echo '<td>'.$col.'</td>'
  33.  } 
  34.  echo '</tr>'
  35. echo '</table>'
  36.  } 
  37. echo "<pre>"
  38. print_r($biaoge); 
  39. echo "</pre>"

3. while() list() each() 組合循環遍歷數組

each()函數.

a. 需要一個數組作為參數 

b. 返回來的也是一個數組 

c. 返回來的數組是0, 1, key, value四個下標(固定的)

0和key下標是當前參數數組元素的?

1和value下標是當前對數數組元素的值

d. 默認認當前元素就是第一個元素 

e. 每執行一次后就會將當前元素向后移動 

f. 如果到最后的元素再執行這個函數,則返回false

使用each遍歷數組的示例代碼如下:

  1. <?php 
  2. //使用each函數遍歷數組 
  3. $arrGoogle=array('google','Gmail','Chrome','Android'); 
  4. //第一次使用each取得當前鍵值對,并且將指針移到下一個位置 
  5. $arrG=each($arrGoogle); 
  6. //打印結果,并且換行以清晰顯示結果 
  7. print_r($arrG); 
  8. print '<br>'
  9. $arrGmail=each($arrGoogle); 
  10. print_r($arrGmail); 
  11. print '<br>'
  12. $arrChrome=each($arrGoogle); 
  13. print_r($arrChrome); 
  14. print '<br>'
  15. $arrAndroid=each($arrGoogle); 
  16. print_r($arrAndroid); 
  17. print '<br>'
  18. //當指針位于數組末尾再次執行函數each,如果是這樣再次執行結果返回false 
  19. $empty=each($arrGoogle); 
  20. //如果指針無法繼續后移返回false 
  21. if($empty==false){ 
  22. print '指針以位于數組末尾,無法在向后移,故返回false'
  23. ?> 

注意:該函數的參數和返回值(在執行該函數前指針不位于數組末尾時)都為數組,在執行函數前數組指針位于數組末尾時再次執行該函數返回值為false,開始的位置是第一個元素,每(正常)執行一次該函數,指針向后移到下一個地址.

list()函數

a. list()=array(); 需要將一個數組賦值給這個函數 

b. 數組中的元素個數,要和list()函數中的參數個數相同 

c. 數組中的每個元素值會賦值list()函數中的每個參數,list()將每個參數轉為變量 

d. list()只能接收索引數組 

e. 按索引的下標的順序

這不是真正的函數,而是PHP的語言結構,list()用一步操作給一組變量進賦值,即把數組中的值賦給一些變量,list()僅能用于數字索引的數組并假定數字索引從0開始,語法格式如下所示:

list(mixed varname,mixed ...)=array_expression  //list()語句的語法格式

list()語句和其它函數在使用上有很大的區別,并不是直接接收一個數組作為參數,而是通過“=”去處符以賦值的方式,將數組中每個元素的值,對應的賦給list()函數中的每個參數,list()函數又將它中的每個參數轉換為直接可以在腳本中使用的變量,使用方法如下:

  1. <?php 
  2. $info=array('coffee','brown','caffeine');              //聲明一個索引數組$info 
  3.  
  4. list($drink,$color,$power)=$info;                      //將數組中的所有元素轉為變量 
  5. echo "$drink is $color and $power makes it special.n";//輸出的三個變量值是數組中三個元素的值 
  6.  
  7. list($drink, ,$power)=$info;                           //將數組中的部分元素變為變量 
  8. echo "$drink has $power.n";                           //輸出的兩個變更值是數組中的前兩個元素的值 
  9.  
  10. list(,,$power)=$info;                                  //跳過前兩個變量只將數組中第三個元素的值轉為變量 
  11. echo "I need $power!n";                               //輸出的一個變量值是數組中桃花汛三個元素的值勤 
  12. ?> 

通過上例了解list()函數的用法之后,將each()函數和list()函數結合起來使用,代碼如下:

  1. <?php 
  2. $contact=array("ID"=>1,"姓名"=>"高某","公司"=>"A公司","地址"=>"北京市"); 
  3. list($key,$value)=each($contact);           //將each()函數和list()函數聯合使用 
  4. echo "$key=>$value";      //輸出變量$key和$value,中間使用"=>"分隔 
  5. ?> 

while() 函數

while()循環的語法格式如下:

  1. while( list($key,$value) = each(array_expressin) ){ 
  2.        循環體; 

使用這種組合改寫前面使用foreach遍歷過的一維數組,代碼如下所示:

  1. <?php 
  2.  //聲明一個一維的關聯數組$contact 
  3.  $contact=array("ID"=>1, 
  4.   "姓名"=>"高某"
  5.   "公司"=>"A公司"
  6.   "地址"=>"北京市"
  7.   "電話"=>"(010)987665432"
  8.   "EMAIL"=>"gao@php.com" 
  9.  ); 
  10.  //以HTML列表的方式輸出數組中每個元素的信息 
  11.  echo '<dl>一個聯系人信息:'
  12.  while(list($key,$value) = each($contact) ){      //將foreach語句改寫成while,list()和each()的組合 
  13.   echo "<dd>$key:$value</dd>";                 //輸出每個元素的鍵/值勤 
  14.   } 
  15.  echo '</dl>'
  16. ?> 

while() 遍歷數據是需要結合list或each函數配置才可以遍歷,否則它單獨是無法完成數組遍歷的.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品欧美日韩| 中国人与牲禽动交精品| 国产精品久久久久7777婷婷| 色偷偷亚洲男人天堂| 久久露脸国产精品| 中文字幕精品在线视频| zzijzzij亚洲日本成熟少妇| 欧美国产一区二区三区| 日韩av电影免费观看高清| 欧美性极品xxxx做受| 国产91在线播放精品91| 亚洲韩国欧洲国产日产av| 亚洲成年人在线播放| 亚洲成人xxx| 中文字幕欧美亚洲| 国产精品国语对白| 92裸体在线视频网站| 亚洲精品资源美女情侣酒店| 色在人av网站天堂精品| 久久精品99久久香蕉国产色戒| 亚洲最新av在线网站| 国产视频精品一区二区三区| 日本精品免费一区二区三区| 亚洲www视频| 欧美最顶级丰满的aⅴ艳星| 欧美国产日韩免费| 俺去亚洲欧洲欧美日韩| 欧美—级高清免费播放| 日韩av综合中文字幕| 成人女保姆的销魂服务| 日韩成人网免费视频| 日韩在线一区二区三区免费视频| 国产精品久久久久7777婷婷| 亚洲全黄一级网站| 亚洲国产精品美女| 久久久久久av| 日韩一区二区av| 国产欧美一区二区三区视频| 国产亚洲a∨片在线观看| 国产精品老女人视频| 中文字幕亚洲无线码在线一区| 永久555www成人免费| 国产91在线视频| 精品久久久久久久中文字幕| 欧美理论片在线观看| 98午夜经典影视| 在线成人中文字幕| 岛国av午夜精品| 亚洲精品福利视频| 韩日欧美一区二区| 欧美久久精品午夜青青大伊人| 在线观看欧美www| 欧美日韩在线视频一区| 欧美放荡办公室videos4k| 国内精品模特av私拍在线观看| 91精品国产高清久久久久久久久| 亚洲理论片在线观看| 久久99青青精品免费观看| 亚洲男女自偷自拍图片另类| 日韩成人性视频| 高清欧美性猛交xxxx黑人猛交| 久久精品中文字幕电影| 欧美黑人极品猛少妇色xxxxx| 九九精品在线观看| 久久久精品日本| 欧美性猛交xxxx| 国产91免费看片| 亚洲成**性毛茸茸| 久久国产精品99国产精| 欧美成人h版在线观看| 欧美激情xxxxx| 亚洲色图在线观看| 亚洲国产精品悠悠久久琪琪| 这里只有精品在线观看| 亚洲女人初尝黑人巨大| 日韩久久免费视频| 2019国产精品自在线拍国产不卡| 日本sm极度另类视频| 久久福利视频导航| 日韩亚洲精品视频| 97av在线播放| 高清视频欧美一级| 国产精品久久久久高潮| 日韩综合中文字幕| 成人欧美一区二区三区黑人孕妇| 国产精品一区二区三区久久| 亚洲性69xxxbbb| 欧美日韩国产一区在线| 久久伊人91精品综合网站| 亚洲精品av在线播放| 亚洲性猛交xxxxwww| 91精品国产91久久久久久| 午夜精品久久久久久久99热| 欧美成人午夜激情视频| 最近2019免费中文字幕视频三| 久久久亚洲福利精品午夜| 久久久精品久久| 欧美黄色三级网站| 亚洲淫片在线视频| 欧美在线观看www| 国产区亚洲区欧美区| 亚洲第五色综合网| 亚洲精品丝袜日韩| 欧美成人精品激情在线观看| 久久久久久亚洲精品中文字幕| 国产亚洲免费的视频看| 精品国内产的精品视频在线观看| 亚洲男人第一网站| 国产精品久久久久9999| 国产精品精品一区二区三区午夜版| 久久亚洲影音av资源网| 久久久精品久久| 欧美精品videossex性护士| 成人精品久久一区二区三区| 中文字幕在线精品| 草民午夜欧美限制a级福利片| 欧美国产精品va在线观看| 日韩成人高清在线| 在线日韩欧美视频| 国产精品对白刺激| 久久在线观看视频| 欧美夫妻性视频| 欧美人在线观看| 欧美高跟鞋交xxxxxhd| 最新亚洲国产精品| 欧美精品一本久久男人的天堂| 国产日韩一区在线| 久久这里只有精品视频首页| 中文字幕亚洲一区在线观看| 亚洲第一视频在线观看| 成人欧美一区二区三区在线| 国产精品综合不卡av| 成人午夜激情免费视频| 亚洲男人天堂九九视频| 77777少妇光屁股久久一区| 久久久精品中文字幕| 色先锋久久影院av| 51ⅴ精品国产91久久久久久| 55夜色66夜色国产精品视频| 国产日韩欧美在线播放| 亚洲乱码一区二区| 日韩欧美亚洲范冰冰与中字| 色噜噜国产精品视频一区二区| 亚洲free性xxxx护士白浆| 欧美精品在线免费观看| 亚洲欧洲日产国产网站| 不卡av日日日| 欧美区在线播放| 国产精品久久久久久久美男| 最近2019好看的中文字幕免费| 国产成人亚洲综合| 7m精品福利视频导航| 91精品视频在线免费观看| 青青草一区二区| 国产精品亚洲视频在线观看| 日韩精品电影网| 麻豆乱码国产一区二区三区| 国产亚洲欧美日韩一区二区| 亚洲一区美女视频在线观看免费| 色妞一区二区三区| 亚洲精品欧美日韩专区| 在线视频欧美日韩精品| 91美女高潮出水| 成人av在线天堂|