PHP 使用list函數each函數遍曆數組(實現foreach)解析

來源:互聯網
上載者:User

PHP使用list函數each函數遍曆數組(實現foreach)淺析

 

直接進入主題吧。

先看看list函數

list() 函數用於在一次操作中給一組變數賦值,並且無限參數(參數超過索引數組裡元素的數量會報錯),如下例

$array=array(1,2,3);list($a)=$array;//即將$array數組裡的元素”1”賦值給$a一個變數var_dump($a);list($a,$b)=$array;//即將$array數組裡的元素”1”,”2”一一賦值給$a,$b兩個變數var_dump($a,$b);list($a,$b,$c)=$array;//即將$array數組裡的元素一一賦值給$a,$b,$c三個變數var_dump($a,$b,$c);list($a,$b,$c,$d)=$array;//參數超過數組元素,會報錯var_dump($a,$b,$c,$d);


 

 

注意:list()函數只能操作或者說用於使用數字索引的數組,且假定數字索引從 0 開始,關聯陣列並不能賦值,或者是既有數字索引又有關聯索引,就會只取數組裡面的數字索引元素,以下是例子。

 

$sweet  = array( 'a'  =>  'apple' ,'b'  =>  'banana' );list($x,$y)=$sweet;//錯誤,不能賦值給$x,與$y,會直接報錯,我就不上圖了

 例子二:

$sweet  = array( 'a'  =>  'apple' ,'b'  =>  'banana' ,0=>"one",1=>"two");list($x,$y)=$sweet;//正確,會直接使用數組裡面符合要求的元素賦值var_dump($x,$y);

總的來說,list函數會把數組裡的數組索引的元素賦值給參數,並索引值由0開始。


接著說說each()函數

返回數組中當前的鍵/值對並將數組指標向前移動一步

在執行 each() 之後,數組指標將停留在數組中的下一個單元或者當碰到數組結尾時停留在最後一個單元。 以下是代碼:

$sweet  = array( 'a'  =>  'apple' ,'b'  =>  'banana' ,0=>"one",1=>"two");$result=each($sweet);var_dump($restult);


細心的人就會發現(我就是那個不細心的),索引值對被返回為四個單元的數組,鍵名為0,1,key和 value。單元 0 和 key 包含有數組單元的鍵名,1 和 value 包含有資料。

如果再執行一次呢。數組指標將指向下一個元素

$sweet  = array( 'a'  =>  'apple' ,'b'  =>  'banana' ,0=>"one",1=>"two");$result=each($sweet);var_dump($result);$result1=each($sweet);var_dump($result1);


 其實就是第n次再用each()函數,會返回數組的第n個元素的索引值對(被返回為四個單元的數組),如果內部指標越過了數組的末端,則 each() 返回 FALSE。


這個時候,再加上while,就可以實現foreach函數了

$sweet  = array( 'a'  =>  'apple' ,'b'  =>  'banana' ,0=>"one",1=>"two");while(list($x,$y)=each($sweet)){echo "鍵名:$x => 索引值:$y";echo"<br />";}


 

 

 

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.