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

php list、each函數(shù)遍歷數(shù)組

我們來(lái)研究?jī)蓚€(gè)比較有意思的數(shù)組函數(shù)。這兩個(gè)函數(shù)學(xué)起來(lái)不難。但是,有些同學(xué)會(huì)遇到一點(diǎn)點(diǎn)小困難。困難在于,找到list函數(shù)和each函數(shù)的操作特點(diǎn)。

list函數(shù)

我們先來(lái)講list函數(shù):

list ( mixed $變量1 [, mixed $變量n ] )

它的功能:將索引數(shù)組下標(biāo)為0的對(duì)應(yīng)我變量1,下標(biāo)1的對(duì)應(yīng)變量2,依此類(lèi)推。

我們來(lái)通過(guò)實(shí)驗(yàn)來(lái)看一下:

<?php

list($one , $two , $three) = array('張三' ,'李四' ,'王五');

//再次聲明:?jiǎn)我?hào)不結(jié)釋變量,所以輸出的是字符串$one
echo '$one----'.$one.'<br />';
echo '$two----'.$two.'<br />';
echo '$three----'.$three.'<br />';

?>

我們來(lái)看一下實(shí)驗(yàn)結(jié)果:

QQ截圖20161114132308.png

分析結(jié)果如圖:

document_2015-09-03_55e8466feae5c.png

結(jié)論:

????1.將下標(biāo)為0的張三賦值給了$one

????2.將下標(biāo)為1的李四賦值給了$two

????3.將下標(biāo)為2的王五賦值給了$three

因此,我們知道了list的功能就是從左到右,一一對(duì)應(yīng)索引數(shù)組從0開(kāi)始的下標(biāo)值。

list的另外一種用法:

<?php

list( ,  , $three) = array('張三' ,'李四' ,'王五');

echo '$one----'.$one.'<br />';
echo '$two----'.$two.'<br />';
echo '$three----'.$three.'<br />';

?>

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

QQ截圖20161114132428.png

結(jié)論:

????1.list當(dāng)中的第一、二個(gè)放變量的地方留空,我只寫(xiě)了$three。

????2.按照一一對(duì)應(yīng)原則,張三和李四沒(méi)有變量可以對(duì)應(yīng)。

????3.所以只有王五有變量對(duì)應(yīng)

請(qǐng)嚴(yán)格記?。核饕龜?shù)組的一一對(duì)應(yīng)原則。list第一個(gè)變量對(duì)應(yīng)的是下標(biāo)為0的數(shù)組元素,下標(biāo)為1的對(duì)應(yīng)的是list里面的第二個(gè)數(shù)組元素。

請(qǐng)猜猜下面的結(jié)果是多少? 為什么?

<?php
list($one, $two, $three) = array(2 => '張三', '李四', '王五');
echo '$one----' . $one . '<br />';
echo '$two----' . $two . '<br />';
echo '$three----' . $three . '<br />';
?>

運(yùn)行結(jié)果如下圖:

QQ截圖20161114132543.png

總結(jié):

????1.因?yàn)槭且灰粚?duì)應(yīng)原則,$one找不到下標(biāo)為0的數(shù)組元素,$two找不到下標(biāo)為1的數(shù)組元素,只有$three找到了下標(biāo)為2的數(shù)組元素

????3.在list($one, $two, $three),我只寫(xiě)了三個(gè)變量。對(duì)應(yīng)完成,無(wú)需再對(duì)應(yīng)后面的變量了,丟棄李四和王五。

each函數(shù)

each 函數(shù)的規(guī)律性上面就更有特點(diǎn)了,并且比較有趣。

array each ( array &$array )

功能:傳入一個(gè)數(shù)組。它會(huì)將其中的一個(gè)元素拆為個(gè)新數(shù)組。每次執(zhí)行這樣操作一個(gè)元素。執(zhí)行一次先后移動(dòng)一次,同樣的方式操作下一個(gè)數(shù)組元素。執(zhí)行到最后,返回false。

我們先來(lái)看看each是怎么操作的數(shù)組元素。

<?php

//定義一個(gè)變量叫$kongjie(空姐)
$kongjie=[
   'gao'=>'穿黑衣服的',
   'shou'=>'退特別長(zhǎng)特別細(xì)',
   'mei'=>'好白',
   'pl'=>'五官端正',
   'type'=>'那就是女神',
   '我是吊絲不敢跟女神搭訕'
   ];

//第一次each
$data = each($kongjie);

echo '<pre>';
var_dump($data);
echo '</pre>';


?>

我們來(lái)看看第一次執(zhí)行each的結(jié)果:

QQ截圖20161114133313.png

總結(jié):
1.讀取了$kongjie中的第一個(gè)元素,將第一個(gè)元素('gao'=>'穿黑衣服的')分解開(kāi)了。

????1分解后第一個(gè)元素變成了一個(gè)新數(shù)組。

????2在新數(shù)組里面,將原值(穿黑衣服的)放了索引下標(biāo)1里面,同時(shí)放到了關(guān)聯(lián)下標(biāo)value里面。

????3在新數(shù)組里面,將原鍵(gao),放到了關(guān)聯(lián)下標(biāo)key里面,放到了索引下標(biāo)0里面。

我們用圖來(lái)表示:

document_2015-09-03_55e84f4676360.png

這樣我們一下子就看明白了。

接下來(lái)我們說(shuō)說(shuō)each的另外一個(gè)特性。讀一次,向后移動(dòng)一個(gè)元素。

<?php

//定義一個(gè)變量叫$kongjie(空姐)
$kongjie=[
   'gao'=>'穿黑衣服的',
   'shou'=>'退特別長(zhǎng)特別細(xì)',
   'mei'=>'好白',
   ];

//第一次each
$data = each($kongjie);

echo '<pre>';
var_dump($data);
echo '</pre>';

echo '-----華麗麗分割線(xiàn)------<br />';


//第2次each
$data = each($kongjie);

echo '<pre>';
var_dump($data);
echo '</pre>';

echo '-----華麗麗分割線(xiàn)------<br />';

//第3次each【執(zhí)行到了最后一個(gè)元素了】
$data = each($kongjie);

echo '<pre>';
var_dump($data);
echo '</pre>';

echo '-----華麗麗分割線(xiàn)------<br />';

//第4次【此時(shí),后面已沒(méi)有可操作的元素了,看返回什么】
$data = each($kongjie);

echo '<pre>';
var_dump($data);
echo '</pre>';

echo '-----華麗麗分割線(xiàn)------<br />';

?>

執(zhí)行結(jié)果:

QQ截圖20161114133417.png

總結(jié):

????1.讀一次向后移動(dòng)一次【可以想象有一個(gè)記錄的箭頭在移動(dòng)】,將其中的每個(gè)元素拆解成一個(gè)新數(shù)組

????2.讀取到最后,沒(méi)有可操作的元素了,所以返回了false。

list 和each 配合

我們知道了list的特性,也知道了each的特性。那list是不是可以和each配合起來(lái)一起來(lái)完成一些工作呢?

list($key,$value) = each($array);

我們來(lái)看之前說(shuō)到的這個(gè)圖:

11.png

而list中的第一個(gè)變量會(huì)去找索引下面0的元素去賦值,第二個(gè)變量會(huì)找索引下標(biāo)為1的元素對(duì)變量賦值。

我們來(lái)看看下面例子:

<?php

//定義一個(gè)變量叫$kongjie(空姐)
$kongjie=[
   'gao'=>'穿黑衣服的',
   'shou'=>'腿特別長(zhǎng)特別細(xì)',
   'mei'=>'好白',
   ];

list($key,$value) = each($kongjie);

echo $key. '-----' .$value .'<br />';

?>

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

QQ截圖20161114133523.png

總結(jié):

????1.each 把變量拆成了4個(gè)元素

????2.而list把0 =>gao 賦值給了變量$key

????3.list把1 => 穿黑衣服的 賦值給了變量 $value

each到最后會(huì)返回false,因此我可以用布爾型循環(huán)while來(lái)配合完成數(shù)組的循環(huán)。

把上面的代碼,輕輕一改就實(shí)現(xiàn)了如下效果:

<?php

//定義一個(gè)變量叫$kongjie(空姐)
$kongjie=[
   'gao'=>'穿黑衣服的',
   'shou'=>'退特別長(zhǎng)特別細(xì)',
   'mei'=>'好白',
   ];

while(list($key,$value) = each($kongjie)){

   echo $key. '-----' .$value .'<br />';

}

?>

執(zhí)行演示:

QQ截圖20161114133617.png

總結(jié):

????1.循環(huán)一次,執(zhí)行一次each,執(zhí)行代碼,然后向后移動(dòng)一個(gè)元素

????2.執(zhí)行到最后返回fasle,因此停止執(zhí)行。

????3.可以通過(guò)each和list配合實(shí)現(xiàn)foreach一樣的效果。

作業(yè):

使用list和each配合,將如下數(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','妖人'),
   ),
);
?>

遍歷顯示出來(lái),效果如下:

44.png

繼續(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','妖人'), ), ); ?>
提交重置代碼