1.list函數 list函數是把數組中的值賦給一些變數,文法如下: void list ( mixed $varname, mixed $varname... )
像 array() 一樣,這不是真正的函數,而是語言結構。list() 用一步操作給一組變數進行賦值。 ??????????? 注意: list() 僅能用於數字索引的數組並假定數字索引從 0 開始。 例1. list() 例子 代碼: $arr=array(1,2,3); list($a,$b,$c)=$arr; echo "\$a是$a, \$b是$b, \$c是$c. "; ?> 顯示為: $a是1, $b是2, $c是3.???????????? 注意list函數的下標必須是數字,還必須是從0開始的。 2.each函數與reset函數 each 函數是返回數組中當前的鍵/值對並將數組指標向前移動一步,注意是一對,下面詳細說明。 該函數文法: array each ( array &$array ) 返回 array 數組中當前指標位置的鍵/值對並向前移動數組指標。索引值對被返回為四個單元的數組,鍵 值為 0,1,key 和 value。單元 0 和 key 包含有數組單元的鍵名,1 和 value 包含有資料。如果內部 指標越過了數組的末端,則 each() 返回 FALSE。這裡面為什麼each函數有四個下表呢?其實each函 數得到這四個下標只是方便我們操作而已,我們可以用0,1作為索引,也可以用key,value作為索引。 例2:each例子 代碼: $arr=array("我是第一個值","我是第二個值","我是第三個值"); echo "當我們用0,1為索引時:
"; $a=each($arr); echo "我在\$arr數組中的位置為:".$a['0']; echo " "; echo "我在\$arr數組中的值為:".$a['1']; echo "
"; echo "當我們用key,value為索引時:
"; $b=each($arr); echo "我在\$arr數組中的位置為:".$b['key']; echo " "; echo "???? 我在\$arr數組中的值為:".$b['value']; ?> 顯示為: 當我們用0,1為索引時: 我在$arr數組中的位置為:0 我在$arr數組中的值為:我是第一個值 當我們用key,value為索引時: 我在$arr數組中的位置為:1 我在$arr數組中的值為:我是第二個值 還可用each函數與list函數結合來遍曆數組,如下例: 例3: $fruit = array('a' => 'apple', 'b' => 'banana', 'c' => 'cranberry'); reset($fruit); while (list($key, $val) = each($fruit)) { ????? echo "$key => $val\n"; } ?> 顯示為: a => apple b => banana c => cranberry 這裡要注意list函數的下標必須是數字,還必須是從0開始的。 裡面的reset函數解釋: 在執行 each() 之後,數組指標將停留在數組中的下一個單元或者當碰到數組結尾時停留在最後一個單元。如果要再用 each 遍曆數組,必須使用 reset()。 如果是第一次遍曆數組可以不用。 詳細說一下reset函數: reset 是將數組的內部指標指向第一個單元,文法為: mixed reset ( array &$array ) reset() 將 array 的內部指標倒回到第一個單元並返回第一個數組單元的值,如果數組為空白則返回 FALSE。 可以將上面的例2與下面的例子對比一下,就很容易明白了。。。、 代碼: $arr=array("我是第一個值","我是第二個值","我是第三個值"); echo "當我們用0,1為索引時:
"; $a=each($arr); echo "我在\$arr數組中的位置為:".$a['0']; echo " "; echo "???? 我在\$arr數組中的值為:".$a['1']; echo "
"; echo "當我們用key,value為索引時:
"; reset($arr); $b=each($arr); echo "我在\$arr數組中的位置為:".$b['key']; echo " "; echo "???? 我在\$arr數組中的值為:".$b['value']; ?> 顯示為: 當我們用0,1為索引時:
我在$arr數組中的位置為:0 我在$arr數組中的值為:我是第一個值
當我們用key,value為索引時:
我在$arr數組中的位置為:0 我在$arr數組中的值為:我是第一個值????????//注意例2中的這一行顯示,就明白了。 |