天天看點

PHP數組簡介

v

一.PHP數組的分類

按照下标的不同,PHP中的數組分為關聯數組和索引數組:

索引數組:下标從0開始,依次增長。

關聯數組:下标為字元串格式,每個下标字元串與數組的值一一關聯對應。(有點像對象的鍵值對)

$arr=["a"=>1;"b"=>2;"c"=>3];

注:[]聲明在5.4版本之後才能使用。

二.關于關聯數組和索引數組

1、數組中,可以同時存在索引數組和關聯數組

2、數組中,所有的索引數組,如果不加指定,會去掉關聯項,預設增長(即關聯數組不占索引位)

1,2,3,5,6的索引分别為0 1 2 3 4。

3、如果關聯數組的key,是純十進制整數字元串,則會将此數字轉為索引數組的索引值

1 2 3 4 的索引分别為 0 1 2 9。

 4、如果手動指定關聯數組的key,索引數組的下标,如果與前面已有的key或下标重複,則後指定的值會覆寫之前的值

 列印數組為  1 2 "one"=>6。

 5、如果手動指定索引數組下标,則後續自增長下标,會按照之前下标最大值,依次增長

1 2 3 4 5 的索引分别為 0 1 2 9 10。

三.數組的周遊

1、使用for循環周遊數組

count($arr);用于統計數組元素的個數

for循環隻能用于周遊純索引數組

如果存在關聯數組,count統計時,會統計兩種數組的總個數,使用for循環周遊混合數組,将導緻數組越界!

2、foreach循環周遊數組(最常用的方法)

 foreach可以周遊任何類型的數組,案例如下:

3.使用list() each() while周遊數組

list(); 用于将數組的每一個值,指派給list函數的每一個參數。(list函數的參數,必須小于等于數組的元素個數)

注意:

list()在解析數組時,隻解析索引數組,不能取出關聯項。

list()可以通過空參數,選擇性的解析數組的值;

each();用于傳回數組目前指針所在位的鍵值對,并将指針後移一位,

傳回值:一個數組。包含一個索引數組(0 鍵 1 值)和一個關聯數組("key" 鍵 "value" 值)。

注意:數組使用each周遊完一遍後,指針始終處于最後一位的下一位,即再用each,始終傳回false,如果還需使用,需用reset()函數,重置數組指針。

4、使用數組指針周遊數組

next():将數組指針後移一位,并傳回後一位的值,沒有傳回false。

prev():将數組指針前移一位,并傳回前一位的值,沒有傳回false。

end():将數組的指針直接移至最後一位,并傳回最後一位的值,空數組傳回false。

reset():重置數組指針,恢複至第一位,并傳回第一位的值,空數組傳回false。

key():傳回目前指針所在位的鍵,如果數組為空或指針指到最後,傳回null。

current():傳回目前指針所在位的值,如果數組為空或指針指到最後,傳回false。

本文轉自 bxst 51CTO部落格,原文連結:http://blog.51cto.com/13013670/1943944