PHP數(shù)組foreach循環(huán)

2018-02-22 16:40 更新

PHP教程 - PHP數(shù)組foreach循環(huán)

foreach 是一種特殊的循環(huán)語(yǔ)句,只適用于數(shù)組和對(duì)象。

foreach 可以以?xún)煞N方式使用。

  • retrieve just the value of each element, or
  • retrieve the element"s key and value.

語(yǔ)法獲取值

使用foreach檢索每個(gè)元素的值,如下所示:

foreach ( $array as $value ) { 
   // (do something with $value here) 
} 
// (rest of script here)   


獲取鍵和值的語(yǔ)法

要使用foreach檢索鍵和值,請(qǐng)使用以下語(yǔ)法:

foreach ( $array as $key =>  $value ) { 
   // (do something with $key and/or $value here 
} 
// (rest of script here)   

實(shí)施例1

使用foreach循環(huán)獲取值


<?PHP
   $authors = array( "Java", "PHP", "CSS", "HTML" ); 

   foreach ( $authors as $val ) { 
       echo $val . "\n"; 
   }   
?>

上面的代碼生成以下結(jié)果。



實(shí)施例2

使用foreach循環(huán)通過(guò)關(guān)聯(lián)數(shù)組


<?php //from   ww w  .  ja  va2s .  c o m
$myBook = array( "title" =>  "Learn PHP from m.hgci.cn", 
                "author" =>  "m.hgci.cn", 
                "pubYear" =>  2000 ); 

foreach ( $myBook as $key =>  $value ) { 
   echo "$key  \n"; 
   echo "$value \n"; 
} 

?>

上面的代碼生成以下結(jié)果。

PHP使用foreach更改數(shù)組值

當(dāng)使用foreach時(shí),循環(huán)中的值是值的副本。

如果你改變了值,你“不影響值在原始數(shù)組中。以下示例代碼說(shuō)明了這一點(diǎn):


<?PHP/*www .j a  va  2  s. c  o  m*/
$authors = array( "Java", "PHP", "CSS", "HTML" ); 

// Displays "Java PHP Javascript HTML"; 
foreach ( $authors as $val ) { 
   if ( $val == "CSS" ) $val = "Javascript"; 
   echo $val . " "; 
} 

print_r ( $authors );   
?>

上面的代碼生成以下結(jié)果。

雖然$ val在循環(huán)中從“CSS"改為“Javascript"原始的$ authors數(shù)組保持不變。

怎么樣

要修改數(shù)組值,我們需要得到foreach()返回一個(gè)引用數(shù)組中的值,而不是副本。

句法

要處理對(duì)數(shù)組元素的引用,請(qǐng)?zhí)砑右粋€(gè)在foreach語(yǔ)句中的變量名之前的& (和號(hào))符號(hào):

foreach ( $array as & $value ) {

例子

這里的前面的例子改寫(xiě)為使用引用:


<?PHP
 $authors = array( "Java", "PHP", "CSS", "HTML" ); 
 foreach ( $authors as  & $val ) { 
   if ( $val == "CSS" ) $val = "Javascript"; 
   echo $val . " "; 
 } 
 unset( $val ); 
 print_r ( $authors );   
?>

上面的代碼生成以下結(jié)果。

這一次,第三個(gè)元素的值在$ authors數(shù)組在數(shù)組本身中從“CSS"更改為“Javascript"。

注意

unset($ val)確保 $ val 變量在循環(huán)已完成。

當(dāng)循環(huán)結(jié)束時(shí),$ val仍然保存對(duì)最后一個(gè)元素的引用。在我們的代碼中更改$ val改變$ authors數(shù)組的最后一個(gè)元素。通過(guò)取消設(shè)置$ val,我們避免潛在的錯(cuò)誤。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)