學會使用PHP的List、each函數及配合

2021-10-18 13:00:39
在之前的文章中給大家帶來了《》,這篇文章中詳細的介紹了PHP中超級全域性變數的相關知識,本篇文章我們一起來看一看PHP中的list、each函數遍歷陣列的相關知識,希望能夠幫助到大家!

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 />';
?>

輸出結果:

1018.01.png

由此可以看出,陣列中「好好學習」的下標為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 />';
?>

輸出結果:

1018.02.png

在上述範例中,下標為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 />';
?>

輸出結果:

1018.03.png

在上述範例中,陣列的下標因為鍵名直接從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>';
?>

輸出結果:

1018.04.png

由上述範例可以看出執行第一次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>';
?>

輸出結果:

1018.06.png

由此可以看出,每讀取一次就會向後移動一次,將其中的每個元素拆分為新的陣列,當讀取到最後的時候,沒有可操作的元素了,就會返回了false。

list和each的配合

我們知道了list的功能,也瞭解了each的功能,那麼兩者結合起來使用的話,會碰出什麼不一樣的火花呢?

我們通過範例來看一下:

<?php
$a=[
   'aaa'=>'好好學習',
   'bbb'=>'天天向上',
   'ccc'=>'福如東海',
   ];
list($key,$value) = each($a);
echo $key. '-----' .$value .'<br />';
?>

輸出結果:

1018.07.png

在上述範例中,each把元素拆了,然後list把0 =>aaa 賦值給了變數$key把1 => 好好學習 賦值給了變數 $value。通過我們之前講到的while迴圈語句的配合,我們可以得到下面的範例:

<?php
$a=[
   'aaa'=>'好好學習',
   'bbb'=>'天天向上',
   'ccc'=>'福如東海',
   ];
   while(list($key,$value) = each($a)){
    echo $key. '-----' .$value .'<br />';
 
 }
?>

輸出結果:

1018.08.png

由上述結果可以看出,每回圈一次,執行一次each,然後向後移動一個元素,執行到最後返回的是flash停止迴圈。

推薦學習:《》

以上就是學會使用PHP的List、each函數及配合的詳細內容,更多請關注TW511.COM其它相關文章!