在php中數(shù)組可以存放值可以是任意的 PHP 類型,如果對(duì)給出的值沒(méi)有指定鍵名,則取當(dāng)前最大的整數(shù)索引值,而新的鍵名將是該值加一,這就是php數(shù)組
有三種數(shù)組類型:
數(shù)值數(shù)組
帶有數(shù)字 ID 鍵的數(shù)組
關(guān)聯(lián)數(shù)組
數(shù)組中的每個(gè) ID 鍵關(guān)聯(lián)一個(gè)值
多維數(shù)組
包含一個(gè)或多個(gè)數(shù)組的數(shù)組
PHP 中的 數(shù)組 實(shí)際上是一個(gè)有序映射.映射是一種把 values 關(guān)聯(lián)到 keys 的類型.此類型在很多方面做了優(yōu)化,因此可以把它當(dāng)成真正的數(shù)組,或列表(向量),散列表(是映射的一種實(shí)現(xiàn)),字典,集合,棧,隊(duì)列以及更多可能性.數(shù)組元素的值也可以是另一個(gè)數(shù)組.樹(shù)形結(jié)構(gòu)和多維數(shù)組也是允許的.
可以用 array() 語(yǔ)言結(jié)構(gòu)來(lái)新建一個(gè) array.它接受任意數(shù)量用逗號(hào)分隔的 鍵(key) => 值(value) 對(duì).
key 可以是 integer 或者 string.如果key是一個(gè) integer 的標(biāo)準(zhǔn)表示,則被解釋為整數(shù)(例如 "8" 將被解釋為 8,而 "08" 將被解釋為 "08").key 中的浮點(diǎn)數(shù)被取整為 integer.在 PHP 中索引數(shù)組與關(guān)聯(lián)數(shù)組是相同的,它們都可以同時(shí)包含整型和字符串的下標(biāo).
值可以是任意的 PHP 類型.
如果對(duì)給出的值沒(méi)有指定鍵名,則取當(dāng)前最大的整數(shù)索引值,而新的鍵名將是該值加一.如果指定的鍵名已經(jīng)有了值,則該值會(huì)被覆蓋.
使用 TRUE 作為鍵名將使 integer 1 成為鍵名.使用 FALSE 作為鍵名將使 integer 0 成為鍵名.使用 NULL 作為鍵名將等同于使用空字符串.使用空字符串作為鍵名將新建(或覆蓋)一個(gè)用空字符串作為鍵名的值,這和用空的方括號(hào)不一樣.
不能用數(shù)組和對(duì)象作為鍵(key).這樣做會(huì)導(dǎo)致一個(gè)警告:Illegal offset type.
用方括號(hào)的語(yǔ)法新建/修改
如果 $arr 還不存在,將會(huì)新建一個(gè).這也是一種定義數(shù)組的替換方法.要改變一個(gè)值,只要給它賦一個(gè)新值.如果要?jiǎng)h除一個(gè)鍵名/值對(duì),要對(duì)它用 unset().
Note:如果給出方括號(hào)但沒(méi)有指定鍵名,則取當(dāng)前最大整數(shù)索引值,新的鍵名將是該值 + 1.如果當(dāng)前還沒(méi)有整數(shù)索引,則鍵名將為 0.如果指定的鍵名已經(jīng)有值了,該值將被覆蓋.
注意這里所使用的最大整數(shù)鍵名不一定當(dāng)前就在數(shù)組中.它只要在上次數(shù)組重新生成索引后曾經(jīng)存在過(guò)就行了.
應(yīng)該始終在用字符串表示的數(shù)組索引上加上引號(hào).例如用 $foo['bar'] 而不是 $foo[bar].但是為什么 $foo[bar] 錯(cuò)了呢?
原因是此代碼中有一個(gè)未定義的常量(bar)而不是字符串('bar'-注意引號(hào)),而 PHP 可能會(huì)在以后定義此常量,不幸的是你的代碼中有同樣的名字.它能運(yùn)行,是因?yàn)?PHP 自動(dòng)將裸字符串(沒(méi)有引號(hào)的字符串且不對(duì)應(yīng)于任何已知符號(hào))轉(zhuǎn)換成一個(gè)其值為該裸字符串的正常字符串.例如,如果沒(méi)有常量定義為 bar,PHP 將把它替代為 'bar' 并使用之.
在這個(gè)例子中,會(huì)自動(dòng)分配 ID 鍵:
實(shí)例代碼如下:
在這個(gè)例子中,我們?nèi)斯し峙涞?ID 鍵:
實(shí)例代碼如下:
可以在腳本中使用這些 ID 鍵:
實(shí)例代碼如下:
以上代碼的輸出:
Quagmire and Joe are Peter's neighbors
多維數(shù)組
在多維數(shù)組中,主數(shù)組中的每個(gè)元素也是一個(gè)數(shù)組.在子數(shù)組中的每個(gè)元素也可以是數(shù)組,以此類推.
在本例中,我們創(chuàng)建了一個(gè)帶有自動(dòng)分配的 ID 鍵的多維數(shù)組:
實(shí)例代碼如下:
總結(jié)
php 中的數(shù)組是我們開(kāi)發(fā)中經(jīng)常會(huì)用到的,像想同是操作多個(gè)數(shù)據(jù)量可用數(shù)組key來(lái)保存不同的值等操作,數(shù)組是最方法最快速的解決辦法.