国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

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

foreach的基本語法

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

那我們其實(shí)在學(xué)循環(huán)的時候,有一個布林型循環(huán)是專門用來循環(huán)陣列的。這個循環(huán)的基本語法就是foreach基本語法。

語法格式如下:

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

#遍歷關(guān)聯(lián)陣列

這是固定用法,將要循環(huán)的陣列放進(jìn)去。
as 是固定的關(guān)鍵字
後面的鍵變數(shù)是可選的,隨意定義一個變量,每次循環(huán)的時候,foreach這個語法會把鍵取出來賦值到鍵變量裡面
後面的值變數(shù)是必填的。每次循環(huán)的時候,會把值放到值變數(shù)裡面。

我們下面用程式碼來舉例子,加強(qiáng)對這個文法的理解。

<?php

$data = [
       'fj' => '鳳姐',
       'fr' => '芙蓉',
   ];


foreach($data  as $key => $value){
       echo $key . '-------' . $value . '<br />';
}


//如果我們只想讀取值的話,就可以把下面的$key => 給刪除掉,讀取的時候,就只讀取值了。做完上面的實(shí)驗(yàn),你可以打開下面的代碼再實(shí)驗(yàn)幾次。

/*
foreach($data  as  $value){
       echo  $value . '<br />';
}
*/
?>

我們執(zhí)行一下看看結(jié)果:

QQ截圖20161114131911.png

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

# 1.每次循環(huán)的時候,把下標(biāo)賦值給了變數(shù)$key,把值的變數(shù)賦值給了變數(shù)$value

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

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

遍歷索引數(shù)組

foreach還挺好學(xué)的。因此,我們可以透過foreach遍歷連續(xù)的索引數(shù)組,如下例:

<?php

$data = array(
       0 => '中國',
       100 => '美國',
       20 => '韓國',
       300 => '德國',
   );

//待會兒可以自己做做實(shí)驗(yàn),循環(huán)遍歷一下下面的這個數(shù)組
//$data = array(1,2,3,4,5,6,7,8,9,10);


foreach($data as $k => $v){

   echo $k . '------' . $v .'<br />';

}

?>

運(yùn)行看一下結(jié)果:

QQ截圖20161114131954.png

##按照foreach的結(jié)果推理與剛剛做的關(guān)聯(lián)數(shù)組的結(jié)果是一樣的。

不同的是不連續(xù)的索引數(shù)組。每讀一次數(shù)組的元素,將當(dāng)次循環(huán)的下標(biāo)賦值給了變數(shù)$k,值賦值給了變數(shù)$v。每讀將鍵和值輸出,然後顯示出來。循環(huán)一次向後移動一次下標(biāo)。讀取至最後,退出執(zhí)行。

遍歷多維數(shù)組

數(shù)組當(dāng)中還有一個數(shù)組我們該怎麼遍歷呢?我們來做一個實(shí)驗(yàn):

<?php

$data = array(

       0 => array(
           '中國' => 'china',
           '美國' => 'usa',
           '德國' => ' Germany',
       ),

       1 => array(
           '湖北' => 'hubei',
           '河北' => 'hebei',
           '山東' => 'shandong',
           '山西' => 'sanxi',
       ),

);

//注:我們在使用foreach循環(huán)時,第一次循環(huán)將鍵為0和鍵為1的兩個數(shù)組賦值給一個變量($value)。然后,再套一個循環(huán)遍歷這個$value變量,$value中的值取出來,賦值給$k和$v。

foreach($data as $value){

   //第一次循環(huán)把國家的數(shù)組賦值給了$value
   //第二次循環(huán)把中國的省份的數(shù)組又賦值給了$value
   //因此,我在循環(huán)的時候把$value再遍歷一次

   foreach($value as $k => $v){
           echo $k . '-----' . $v .'<br />';
   }

   //為了看的更清晰,我在中間加上華麗麗的分割線方便你來分析

   echo '----------分割線-----------<br />';

}

?>

結(jié)果就出來了喲:


#總結(jié):

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

第一次循環(huán)退出子陣列的循環(huán),執(zhí)行後續(xù)程式碼顯示分割線。

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

作業(yè)

將如下數(shù)組:

<?php
$arr=array(
   '教學(xué)部'=>array(
       array('李某','18','人妖'),
       array('高某','20','男'),
       array('張某','21','妖人'),
   ),
   '宣傳部'=>array(
       array('李某','18','人妖'),
       array('高某','20','男'),
       array('張某','21','妖人'),
   ),
   '財(cái)務(wù)部'=>array(
       array('李某','18','人妖'),
       array('高某','20','男'),
       array('張某','21','妖人'),
   ),
);
?>

遍歷顯示出來,效果如下:

QQ截圖20161114132027.png

總結(jié):

????1.第一次迴圈的時候,將陣列賦值給了$value,然後用foreach循環(huán)$value。將二維的子數(shù)組中的鍵給到$k,值賦值給變數(shù)$v。

????2.第一次循環(huán)退出子陣列的循環(huán),執(zhí)行後續(xù)程式碼顯示分割線。

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


繼續(xù)學(xué)習(xí)
||
<?php $arr=array( '教學(xué)部'=>array( array('李某','18','人妖'), array('高某','20','男'), array('張某','21','妖人'), ), '宣傳部'=>array( array('李某','18','人妖'), array('高某','20','男'), array('張某','21','妖人'), ), '財(cái)務(wù)部'=>array( array('李某','18','人妖'), array('高某','20','男'), array('張某','21','妖人'), ), ); ?>
提交重置程式碼