首頁  >  文章  >  後端開發  >  學會使用PHP的List、each函數及配合

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

WBOY
WBOY原創
2021-10-18 10:40:425070瀏覽

在之前的文章中為大家帶來了《如何搞定PHP超級全局變數(整理分享)》,這篇文章中詳細的介紹了PHP中超級全局變數的相關知識,本篇文章我們一起來看看PHP中的list、each函數遍歷陣列的相關知識,希望能夠幫助大家!

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

list函數與each函數是我們在日常生活中經常能夠用到的函數,那麼這兩個函數該怎麼使用?兩者之間有什麼特色?他們又是怎麼配合使用的?這兩個函數是比較有趣的陣列函數,函數學習起來並不難,那我們一起來看看吧。

list函數

#list函數它的功能是:能夠將索引數組下標為0的對應為變數1,下標為1的對應變數2...list函數能夠將陣列的元素變成變數使用。

它的基本語法是:

list(变量1,变量2...)

範例如下:

<?php
list($a , $b , $c, $d) = array(&#39;好好学习&#39; ,&#39;天天向上&#39; ,&#39;福如东海&#39;,&#39;寿比南山&#39;);
echo &#39;$a----&#39;.$a.&#39;<br />&#39;;
echo &#39;$b----&#39;.$b.&#39;<br />&#39;;
echo &#39;$c----&#39;.$c.&#39;<br />&#39;;
echo &#39;$d----&#39;.$d.&#39;<br />&#39;;
?>

輸出結果:

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

由此可以看出,數組中「好好學習」的下標為0,就對應了list函數中的$a;也可以理解為,數組中變數為0的「好好學習」賦值給了list函數中的$a;以此類推。 list就是從左到右,一一對應索引數組從0開始的下標值。

同時還有一種情況,範例如下:

<?php
list( ,  , $c, $d) = array(&#39;好好学习&#39; ,&#39;天天向上&#39; ,&#39;福如东海&#39;,&#39;寿比南山&#39;);
echo &#39;$a----&#39;.$a.&#39;<br />&#39;;
echo &#39;$b----&#39;.$b.&#39;<br />&#39;;
echo &#39;$c----&#39;.$c.&#39;<br />&#39;;
echo &#39;$d----&#39;.$d.&#39;<br />&#39;;
?>

輸出結果:

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

在上述範例中,下標為2的福如東海賦值給了$c,list中的前兩個位置留了空,按照一一對應,所以好好學習和天天向上沒有變量與之對應。所以list函數嚴格遵守一一對應原則,也就是list函數的地一個變數對應的是數組中下標為0的元素,下標為1的對應的是list函數中的第二個變量,以此類推。

當然還有一種情況,範例如下:

<?php
list($a , $b , $c, $d) = array(2=>&#39;好好学习&#39; ,&#39;天天向上&#39; ,&#39;福如东海&#39;,&#39;寿比南山&#39;);
echo &#39;$a----&#39;.$a.&#39;<br />&#39;;
echo &#39;$b----&#39;.$b.&#39;<br />&#39;;
echo &#39;$c----&#39;.$c.&#39;<br />&#39;;
echo &#39;$d----&#39;.$d.&#39;<br />&#39;;
?>

輸出結果:

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

在上述範例中,數組的下標因為鍵名直接從2開始,所以數組元素中沒有下標為0和1的元素,所以變數a和b就沒有對應的值。同時,list函數中只寫了四個變量,數組元素中的下標為4和5的福如東海、壽比南山也就沒有了對應的變數。

each函數

each函數的函數是傳入一個陣列。它會將其中的一個元素拆分為一個新的陣列。每次執行這樣操作一個元素。執行一次先後移動一次,同樣的方式操作下一個陣列元素。執行到最後,返回false。

範例如下:

<?php
$a=[
   &#39;aaa&#39;=>&#39;好好学习&#39;,
   &#39;bbb&#39;=>&#39;天天向上&#39;,
   &#39;ccc&#39;=>&#39;福如东海&#39;,
   &#39;ddd&#39;=>&#39;寿比南山&#39;
   ];
//第一次each
$data = each($a);
echo &#39;<pre class="brush:php;toolbar:false">&#39;;
var_dump($data);
echo &#39;
'; ?>

輸出結果:

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

#由上述範例可以看出執行第一次each函數,將陣列元素中的第一個元素也就是aaa=>好好學習拆為新的陣列。可以理解為,each函數讀取了第一個元素,將第一個元素分解開了,在新數組裡面,將原值(好好學習)放了索引下標1裡面,同時放到了關聯下標value裡面,將原鍵(aaa),放到了關聯下標key裡面,放到了索引下標0裡面。

這是運行了一次的結果,那我們再來看一下多運行幾次,範例如下:

<?php
$a=[
   &#39;aaa&#39;=>&#39;好好学习&#39;,
   &#39;bbb&#39;=>&#39;天天向上&#39;,
   &#39;ccc&#39;=>&#39;福如东海&#39;
   ];
//第一次each
$data = each($a);
echo &#39;<pre class="brush:php;toolbar:false">&#39;;
var_dump($data);
echo &#39;
'; //第二次each $data = each($a); echo '
';
var_dump($data);
echo '
'; //第三次each $data = each($a); echo '
';
var_dump($data);
echo '
'; //第四次each $data = each($a); echo '
';
var_dump($data);
echo '
'; ?>

輸出結果:

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

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

list和each的配合

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

我們透過範例來看一下:

<?php
$a=[
   &#39;aaa&#39;=>&#39;好好学习&#39;,
   &#39;bbb&#39;=>&#39;天天向上&#39;,
   &#39;ccc&#39;=>&#39;福如东海&#39;,
   ];
list($key,$value) = each($a);
echo $key. &#39;-----&#39; .$value .&#39;<br />&#39;;
?>

輸出結果:

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

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

<?php
$a=[
   &#39;aaa&#39;=>&#39;好好学习&#39;,
   &#39;bbb&#39;=>&#39;天天向上&#39;,
   &#39;ccc&#39;=>&#39;福如东海&#39;,
   ];
   while(list($key,$value) = each($a)){
    echo $key. &#39;-----&#39; .$value .&#39;<br />&#39;;
 
 }
?>

輸出結果:

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

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

推薦學習:《PHP影片教學

以上是學會使用PHP的List、each函數及配合的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn