list函數與each函數是我們在日常生活中經常能夠用到的函數,那麼這兩個函數應該怎麼使用?兩者之間有什麼特點?他們又是怎麼配合使用的?這兩個函數是比較有意思的陣列函數,函數學習起來並不難,那我們一起來看看吧。
list函數
list
函數它的功能是:能夠將索引陣列下標為0的對應為變數1,下標為1的對應變數2...list函數能夠將陣列的元素變成變數使用。
它的基本語法是:
list(變數1,變數2...)
範例如下:
<?php list($a , $b , $c, $d) = array('好好學習' ,'天天向上' ,'福如東海','壽比南山'); echo '$a----'.$a.'<br />'; echo '$b----'.$b.'<br />'; echo '$c----'.$c.'<br />'; echo '$d----'.$d.'<br />'; ?>
輸出結果:
由此可以看出,陣列中「好好學習」的下標為0,就對應了list函數中的$a;也可以理解為,陣列中變數為0的「好好學習」賦值給了list函數中的$a;以此類推。list就是從左到右,一一對應索引陣列從0開始的下標值。
同時還有一種情況,範例如下:
<?php list( , , $c, $d) = array('好好學習' ,'天天向上' ,'福如東海','壽比南山'); echo '$a----'.$a.'<br />'; echo '$b----'.$b.'<br />'; echo '$c----'.$c.'<br />'; echo '$d----'.$d.'<br />'; ?>
輸出結果:
在上述範例中,下標為2的福如東海賦值給了$c,list中的前兩個位置留了空,按照一一對應,所以好好學習和天天向上沒有變數與之對應。所以list函數嚴格遵守一一對應原則,也就是list函數的地一個變數對應的是陣列中下標為0的元素,下標為1的對應的是list函數中的第二個變數,以此類推。
當然還有一種情況,範例如下:
<?php list($a , $b , $c, $d) = array(2=>'好好學習' ,'天天向上' ,'福如東海','壽比南山'); echo '$a----'.$a.'<br />'; echo '$b----'.$b.'<br />'; echo '$c----'.$c.'<br />'; echo '$d----'.$d.'<br />'; ?>
輸出結果:
在上述範例中,陣列的下標因為鍵名直接從2開始,所以陣列元素中沒有下標為0和1的元素,所以變數a和b就沒有對應的值。同時,list函數中只寫了四個變數,陣列元素中的下標為4和5的福如東海、壽比南山也就沒有了對應的變數。
each函數
each
函數的功能是傳入一個陣列。它會將其中的一個元素拆分為一個新的陣列。每次執行這樣操作一個元素。執行一次先後移動一次,同樣的方式操作下一個陣列元素。執行到最後,返回false。
範例如下:
<?php $a=[ 'aaa'=>'好好學習', 'bbb'=>'天天向上', 'ccc'=>'福如東海', 'ddd'=>'壽比南山' ]; //第一次each $data = each($a); echo '<pre>'; var_dump($data); echo '</pre>'; ?>
輸出結果:
由上述範例可以看出執行第一次each函數,將陣列元素中的第一個元素也就是aaa=>好好學習拆為一個新的陣列。可以理解為,each函數讀取了第一個元素,將第一個元素分解開了,在新陣列裡面,將原值(好好學習)放了索引下標1裡面,同時放到了關聯下標value裡面,將原鍵(aaa),放到了關聯下標key裡面,放到了索引下標0裡面。
這是執行了一次的結果,那我們再來看一下多執行幾次,範例如下:
<?php $a=[ 'aaa'=>'好好學習', 'bbb'=>'天天向上', 'ccc'=>'福如東海' ]; //第一次each $data = each($a); echo '<pre>'; var_dump($data); echo '</pre>'; //第二次each $data = each($a); echo '<pre>'; var_dump($data); echo '</pre>'; //第三次each $data = each($a); echo '<pre>'; var_dump($data); echo '</pre>'; //第四次each $data = each($a); echo '<pre>'; var_dump($data); echo '</pre>'; ?>
輸出結果:
由此可以看出,每讀取一次就會向後移動一次,將其中的每個元素拆分為新的陣列,當讀取到最後的時候,沒有可操作的元素了,就會返回了false。
list和each的配合
我們知道了list的功能,也瞭解了each的功能,那麼兩者結合起來使用的話,會碰出什麼不一樣的火花呢?
我們通過範例來看一下:
<?php $a=[ 'aaa'=>'好好學習', 'bbb'=>'天天向上', 'ccc'=>'福如東海', ]; list($key,$value) = each($a); echo $key. '-----' .$value .'<br />'; ?>
輸出結果:
在上述範例中,each把元素拆了,然後list把0 =>aaa 賦值給了變數$key把1 => 好好學習 賦值給了變數 $value。通過我們之前講到的while迴圈語句的配合,我們可以得到下面的範例:
<?php $a=[ 'aaa'=>'好好學習', 'bbb'=>'天天向上', 'ccc'=>'福如東海', ]; while(list($key,$value) = each($a)){ echo $key. '-----' .$value .'<br />'; } ?>
輸出結果:
由上述結果可以看出,每回圈一次,執行一次each,然後向後移動一個元素,執行到最後返回的是flash停止迴圈。
推薦學習:《》
以上就是學會使用PHP的List、each函數及配合的詳細內容,更多請關注TW511.COM其它相關文章!