php list each 訪問陣列

2021-06-16 15:34:34 字數 2940 閱讀 1154

while (list ($key, $val) = each ($para)) 

else $para_filter[$key] = $para[$key];

print_r($key."->");

}

但是除錯發現,list開始的key不是第乙個,需要使用reset($para);

1.list函式

list函式是把陣列中的值賦給一些變數,語法如下:

voidlist( mixed $varname, mixed $varname... )

像 array()

一樣,這不是真正的函式,而是語言結構。list()用一步操作給一組變數進行賦值。

注意: list() 僅能用於數字索引的陣列並假定數字索引從 0 開始。

例1.list()例子

**:

<?php

$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 函式是返回陣列中當前的鍵/值對並將陣列指標向前移動一步,注意是一對,下面詳細說明。

該函式語法:

arrayeach( array &$array )

返回 array 陣列中當前指標位置的鍵/值對並向前移動陣列指標。鍵值對被返回為四個單元的陣列,鍵

值為 0,1,key 和 value。單元 0 和 key 包含有陣列單元的鍵名,1 和 value 包含有資料。如果內部

指標越過了陣列的末端,則each()返回false。這裡面為什麼each函式有四個下表呢?其實each函

數得到這四個下標只是方便我們操作而已,我們可以用0,1作為索引,也可以用key,value作為索引。

例2:each例子

**:

<?php

$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:

這裡要注意list函式的下標必須是數字,還必須是從0開始的。

裡面的reset函式解釋:

在執行each()之後,陣列指標將停留在陣列中的下乙個單元或者當碰到陣列結尾時停留在最後乙個單元。如果要再用 each 遍歷陣列,必須使用 

reset()

如果是第一次遍歷陣列可以不用。

詳細說一下reset函式:

reset 是將陣列的內部指標指向第乙個單元,語法為:

mixedreset( array &$array )

reset() 將 array 的內部指標倒回到第乙個單元並返回第乙個陣列單元的值,如果陣列為空則返回false。

可以將上面的例2與下面的例子對比一下,就很容易明白了。。。、

**:<?php

$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中的這一行顯示,就明白了。

指標訪問陣列

指標訪問陣列有幾下幾點不同 1.通過指標變數,無法獲取到指標指向的內容的大小 2.int 是確定指標所要尋找的內容的大小,和指標的算數時所需要跳轉的位元組數量 3.指標變數是變數可以通過自增方式訪問位址名,數字名不能自增。指標是從高到低分配,卻從低到高儲存的。這個可以通過語句來表達 int a 3 ...

陣列下標訪問

q int a 2 3 則a 1 0 和 a 1 1 的值分別是 a a 4 5 b 4 3 c 3 5 d 3 4 a 假設給乙個一維陣列 int a 5 首先要明白 a 和 a 的意思,他們位址值一樣 可以把a理解江蘇的省會南京市 即江蘇省城市排名中的第乙個,對應陣列中的第乙個元素 a理解為江蘇...

陣列的訪問

通過索引訪問陣列中的元素 1 取出陣列中的元素 2 修改陣列中的元素 3 往陣列中儲存元素 格式 陣列名 陣列索引 索引 每乙個儲存到陣列的元素,都會自動的擁有乙個編號,從0開始,這個自動編號稱為陣列索引 index 注意 1.直接列印陣列名,列印的是陣列的位址值 2.索引是從0開始,一直到 陣列長...