亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

首頁課程PHP Fun Breakthrough Classforeach traverses associative array

foreach traverses associative array

目錄列表

foreach遍歷關(guān)聯(lián)數(shù)組

foreach的基本語法:

我們通過上一章的內(nèi)容學(xué)會(huì)了for循環(huán)遍歷連續(xù)下標(biāo)的索引數(shù)組??墒?,我們發(fā)現(xiàn)我們遍歷不了關(guān)聯(lián)數(shù)組,也遍歷不了下標(biāo)不連續(xù)的索引數(shù)組。

那我們其實(shí)在學(xué)循環(huán)的時(shí)候,有一個(gè)循環(huán)是專門用來循環(huán)數(shù)組的。這個(gè)循環(huán)的基本語法就是foreach基本語法。

語法格式:

foreach( 要循環(huán)的數(shù)組變量 as [鍵變量 =>] 值變量){
//循環(huán)的結(jié)構(gòu)體
}

以下foreach語法正確的有哪些?

遍歷關(guān)聯(lián)數(shù)組

數(shù)組中的數(shù)據(jù)是另一個(gè)數(shù)組我們?cè)撛趺幢闅v呢?我們來做一個(gè)實(shí)驗(yàn):

這是一個(gè)固定用法,將要循環(huán)的數(shù)組放進(jìn)去。

as 是一個(gè)固定的關(guān)鍵字。

后面的鍵變量是可選的,隨意定義一個(gè)變量,每次循環(huán)的時(shí)候,foreach這個(gè)語法會(huì)把鍵取出來賦值到鍵變量里面

后面的值變量是必填的。每次循環(huán)的時(shí)候,會(huì)把值放到值變量里面。

我們下面用代碼來舉例子,加強(qiáng)對(duì)這個(gè)語法的理解。

<?php
$data = [
       'fj' => '鳳姐',
       'fr' => '芙蓉',
   ];
foreach($data  as $key => $value){
       echo $key . '-------' . $value . '<br />';
}
// 結(jié)果 
/*
fj-------鳳姐
fr-------芙蓉
*/
?>

通過上面的運(yùn)行結(jié)果我們得出下面的結(jié)果:

  • 每次循環(huán)的時(shí)候,把下標(biāo)賦值給了變量$key,把值的變量賦值給了變量$value

  • 循環(huán)一次讀一次鍵和值。如上例中,讀完“鳳姐”再讀取“芙蓉”,讀到最后,發(fā)現(xiàn)沒有可以讀取的數(shù)組元素后,停止循環(huán)遍歷數(shù)據(jù)。

注意:$key 和$value并不是變量名必須得為這兩個(gè)名字。你命名為其他的也可以,如 $kai => $wen是一樣的。 你要清楚鍵賦值給了哪個(gè)變量,值賦值給了另外的哪個(gè)變量。

foreach遍歷索引數(shù)組和遍歷關(guān)聯(lián)數(shù)組類似,這里不做驗(yàn)證。感興趣的可以自己試試。

填空,遍歷出數(shù)組里的所有學(xué)生年齡,并且一一對(duì)應(yīng)。

<?php $boy = [ 'xiaoming' => 18,'xiaoliang' => 19, ]; foreach($boy $k $v){echo $k.'年齡是'.. '<br />'; } ?>

遍歷多維數(shù)組

數(shù)組中的數(shù)據(jù)是另一個(gè)數(shù)組我們?cè)撛趺幢闅v呢?我們來做一個(gè)實(shí)驗(yàn):

<?php
$data = array(
       0 => array(
           '中國' => 'china',
           '美國' => 'usa',
           '德國' => ' Germany',
       ),
       1 => array(
           '湖北' => 'hubei',
           '河北' => 'hebei',
           '山東' => 'shandong',
           '山西' => 'sanxi',
       ),
);
//注:我們?cè)谑褂胒oreach循環(huán)時(shí),第一次循環(huán)將鍵為0和鍵為1的兩個(gè)數(shù)組賦值給一個(gè)變量($value)。然后,再套一個(gè)循環(huán)遍歷這個(gè)$value變量,$value中的值取出來,賦值給$k和$v。
foreach($data as $value){
   //第一次循環(huán)把國家的數(shù)組賦值給了$value
   //第二次循環(huán)把中國的省份的數(shù)組又賦值給了$value
   //因此,我在循環(huán)的時(shí)候把$value再遍歷一次
   foreach($value as $k => $v){
           echo $k . '-----' . $v .'<br />';
   }
   //為了看的更清晰,我在中間加上華麗麗的分割線方便你來分析
   echo '----------分割線-----------<br />';
}
// 結(jié)果
/*
中國-----china
美國-----usa
德國----- Germany
----------分割線-----------
湖北-----hubei
河北-----hebei
山東-----shandong
山西-----sanxi
----------分割線-----------
*/
?>

總結(jié):

  • 第一次循環(huán)的時(shí)候,將數(shù)組賦值給了$value,然后用foreach循環(huán)$value。將二維的子數(shù)組中的鍵給到$k,值賦值給變量$v。

  • 第一次循環(huán)退出子數(shù)組的循環(huán),執(zhí)行后續(xù)代碼顯示分割線。

  • 依此類推,第二次循環(huán)也是這樣。

在實(shí)際開發(fā)中對(duì)多維數(shù)組還是挺重要的,自己多多練習(xí)遍歷多維數(shù)組。