多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > php foreach遍歷數組用法介紹

php foreach遍歷數組用法介紹

來源:程序員人生   發布時間:2014-06-12 21:45:43 閱讀次數:2440次

在php中遍歷數組有很多方法,foreach、each、list、for等等遍歷數組語句,但是在這幾種中foreach遍歷數組性能最好,所以我也常用,下面我來介紹入門者foreach遍歷數組實例.

語法:

foreach ( array_expression as $key => $value ) statement

實例1代碼如下:

  1.  $color=array('white' => '白色' , 
  2.        'black' => '黑色' , 
  3.        'red' => '紅色' , 
  4.        'green' => '綠色'
  5.        'yellow' => '黃色'); 
  6.  foreach$color as $cecho $c ."
    "
    ;     
  7. ?> 

通過foreach不僅可以獲得元素的值也可以獲得鍵名,結構形式:

實例代碼如下:

  1. foreach$color as $cecho $c ."
    "

  1. foreach$color as $key => $cecho $key.$c ."
    "

這里跟第一種方法的區別就是多了個$key,也就是除了把當前元素的值賦給$value外,當前元素的鍵值也會在每次循環中被賦給變量$key.鍵值可以 是下標值,也可以是字符串.比如book[0]=1中的"0",book[id]="001"中的"id".

下面來仔細探討下foreach使用中的一些問題.

普通情況下,foreach($arr as $value)中的$arr和$value是拷貝,不受外部影響的.

實例代碼如下:

  1. $arr = array(0,1,2,3,4,5); 
  2. foreach($arr as $value){ 
  3.  $arr = array(); 
  4.  echo $value; 
  5. // 12345 

但如果$arr是引用的話,情況則不同了,我們用代碼來說明問題

實例代碼如下:

  1. $arr = array(0,1,2,3,4,5); 
  2. $arr = &$arr
  3. foreach($arr as $value){ 
  4.  $arr = array(); 
  5.  echo $value
  6. // 0 

這是因為循環用的$arr是直接指向原數據的,而不是copy了一份.如果$value是引用,而$arr不是引用,其結果是一樣的,同樣$value是指向原數據的而不是copy.

實例代碼如下:

  1. $arr = array(0,1,2,3,4,5); 
  2. foreach($arr as &$value){ 
  3.  $arr = array(); 
  4.  echo $value
  5. // 結果是: 0 

還有一種情況比較特殊,即是如果定義了$arr為全局變量的話,$arr也會變成引用:

實例代碼如下:

  1. global $arr
  2. $arr = array(0,1,2,3,4,5); 
  3. foreach($arr as $value){ 
  4.  $arr = array(); 
  5.  echo $value
  6. // 結果是: 0 

如果兩次循環一個數組,一定不能這樣寫

實例代碼如下:

  1. foreach($arr as &$value){} 
  2. foreach($arr as $value){} 

這會導致第二次的循環的結果不正確(可能是php的bug吧).可以用以下幾種來代替

實例代碼如下:

  1. //solution 1 
  2. foreach($arr as &$value){} 
  3. unset($value); 
  4. foreach($arr as $value){} 
  5. //solution 2 
  6. foreach($arr as &$value){} 
  7. foreach($arr as &$value){} 
  8. //solution 3 
  9. foreach($arr as &$value){} 
  10. $arr2 = $arr
  11. foreach($arr2 as $value){} 

防止foreach出現未定義情況,盡量這樣來寫foreach

實例代碼如下:

  1. foreach((array)$arr as $value) {} 

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 日本女人一级片 | 日本怡春院欧美一区二区三区 | 欧美刺激性色黄大片18 | 免费看黄网站大全 | 高清欧美性xxxx成熟 | 国产在线精品福利一区二区三区 | 国产农村女人一级毛片了 | 午夜影院啊啊啊 | 亚洲国产精品一区二区三区久久 | 欧美精品v国产精品v日韩精品 | 精品999视频| 99久久老司机免费精品免费 | 末发育娇小性色xxxxx视频 | 自怕偷自怕亚洲精品 | 日韩中文字幕在线观看 | 人人爱人人爽 | 国产亚洲欧美成人久久片 | 天天综合网天天做天天受 | 亚洲精品第四页中文字幕 | 欧美xxxx做受欧美护士 | 视频一区色眯眯视频在线 | 性欧美黑人xxxx | 国产主播福利片在线观看 | 国产免费一区二区在线看 | 亚洲天堂成人 | 国内精品视频成人一区二区 | 99成人精品 | 日产毛片 | 欧美国产亚洲一区 | 欧美性猛交xxxx免费看 | 国产成人福利美女观看视频 | 插插网站 | 伊人国产在线观看 | 在线观看视频一区二区三区 | 97久久精品午夜一区二区 | 操人视频免费 | 手机看片久久高清国产日韩 | 亚洲精品免费在线观看 | 日本高清www午色夜黄 | 一级爱爱片一级毛片-一毛 一级爱一级做a性视频 | 99久久久国产精品免费牛牛四川 |