一.PHP數(shù)組的分類
創(chuàng)新互聯(lián)建站是一家朝氣蓬勃的網(wǎng)站建設(shè)公司。公司專注于為企業(yè)提供信息化建設(shè)解決方案。從事網(wǎng)站開發(fā),網(wǎng)站制作,網(wǎng)站設(shè)計(jì),網(wǎng)站模板,微信公眾號開發(fā),軟件開發(fā),小程序設(shè)計(jì),十年建站對成都除甲醛等多個行業(yè),擁有豐富建站經(jīng)驗(yàn)。
按照下標(biāo)的不同,PHP中的數(shù)組分為關(guān)聯(lián)數(shù)組和索引數(shù)組:
索引數(shù)組:下標(biāo)從0開始,依次增長。
$arr=[1,2,3,4,5];
關(guān)聯(lián)數(shù)組:下標(biāo)為字符串格式,每個下標(biāo)字符串與數(shù)組的值一一關(guān)聯(lián)對應(yīng)。(有點(diǎn)像對象的鍵值對)
1 | $arr=["a"=>1;"b"=>2;"c"=>3]; |
注:[]聲明在5.4版本之后才能使用。
二.關(guān)于關(guān)聯(lián)數(shù)組和索引數(shù)組
1、數(shù)組中,可以同時存在索引數(shù)組和關(guān)聯(lián)數(shù)組
array(1,2,3,"four"=>4);
2、數(shù)組中,所有的索引數(shù)組,如果不加指定,會去掉關(guān)聯(lián)項(xiàng),默認(rèn)增長(即關(guān)聯(lián)數(shù)組不占索引位)
array(1,2,3,"four"=>4,5,6);
1,2,3,5,6的索引分別為0 1 2 3 4。
3、如果關(guān)聯(lián)數(shù)組的key,是純十進(jìn)制整數(shù)字符串,則會將此數(shù)字轉(zhuǎn)為索引數(shù)組的索引值
array(1,2,3,"9"=>4);
1 2 3 4 的索引分別為 0 1 2 9。
4、如果手動指定關(guān)聯(lián)數(shù)組的key,索引數(shù)組的下標(biāo),如果與前面已有的key或下標(biāo)重復(fù),則后指定的值會覆蓋之前的值
array(1,2,"one"=>5,"one"=>6)
打印數(shù)組為 1 2 "one"=>6。
5、如果手動指定索引數(shù)組下標(biāo),則后續(xù)自增長下標(biāo),會按照之前下標(biāo)最大值,依次增長
array(1,2,3,"9"=>4,5);
1 2 3 4 5 的索引分別為 0 1 2 9 10。
三.數(shù)組的遍歷
1、使用for循環(huán)遍歷數(shù)組
count($arr);用于統(tǒng)計(jì)數(shù)組元素的個數(shù)
for循環(huán)只能用于遍歷純索引數(shù)組
如果存在關(guān)聯(lián)數(shù)組,count統(tǒng)計(jì)時,會統(tǒng)計(jì)兩種數(shù)組的總個數(shù),使用for循環(huán)遍歷混合數(shù)組,將導(dǎo)致數(shù)組越界!
$arr=[1,2,3,4,5];for($i=0;$i
2、foreach循環(huán)遍歷數(shù)組(最常用的方法)
foreach可以遍歷任何類型的數(shù)組,案例如下:$arr=[1,2,"one"=>5,"one"=>6];foreach($arr as $key=>$value){ echo "這是key:{$key}"; echo "這是value:{$value}"; }3.使用list() each() while遍歷數(shù)組
list(); 用于將數(shù)組的每一個值,賦值給list函數(shù)的每一個參數(shù)。(list函數(shù)的參數(shù),必須小于等于數(shù)組的元素個數(shù))
注意:
list()在解析數(shù)組時,只解析索引數(shù)組,不能取出關(guān)聯(lián)項(xiàng)。
list()可以通過空參數(shù),選擇性的解析數(shù)組的值;
each();用于返回?cái)?shù)組當(dāng)前指針?biāo)谖坏逆I值對,并將指針后移一位,
返回值:一個數(shù)組。包含一個索引數(shù)組(0 鍵 1 值)和一個關(guān)聯(lián)數(shù)組("key" 鍵 "value" 值)。
while(list($key,$value) = each($arr)){ echo "{$key} {$value}
"; } reset($arr);注意:數(shù)組使用each遍歷完一遍后,指針始終處于最后一位的下一位,即再用each,始終返回false,如果還需使用,需用reset()函數(shù),重置數(shù)組指針。
4、使用數(shù)組指針遍歷數(shù)組
next():將數(shù)組指針后移一位,并返回后一位的值,沒有返回false。
prev():將數(shù)組指針前移一位,并返回前一位的值,沒有返回false。
end():將數(shù)組的指針直接移至最后一位,并返回最后一位的值,空數(shù)組返回false。
reset():重置數(shù)組指針,恢復(fù)至第一位,并返回第一位的值,空數(shù)組返回false。
key():返回當(dāng)前指針?biāo)谖坏逆I,如果數(shù)組為空或指針指到最后,返回null。
current():返回當(dāng)前指針?biāo)谖坏闹?,如果?shù)組為空或指針指到最后,返回false。
$arr=[1,2,false,3,4,5];while (true) { echo key($arr); echo"---"; echo current($arr)."
"; if(!next($arr)&&key($arr)===null) break; } }
文章標(biāo)題:PHP數(shù)組簡介
文章路徑:http://weahome.cn/article/jgihes.html