在php中,關(guān)聯(lián)數(shù)組是值以字符串或字符串、數(shù)字混合為鍵名的數(shù)組;如果一個(gè)數(shù)組中有一個(gè)鍵名不是數(shù)字,那么這個(gè)數(shù)組就是關(guān)聯(lián)數(shù)組。關(guān)聯(lián)數(shù)組的鍵名可以是任何一個(gè)整數(shù)或字符串;如果鍵名是一個(gè)字符串,則要給這個(gè)鍵名加上一個(gè)定界修飾符:?jiǎn)我?hào)“''”或雙引號(hào)“""”。
php入門(mén)到就業(yè)線(xiàn)上直播課:進(jìn)入學(xué)習(xí)
API 文檔、設(shè)計(jì)、調(diào)試、自動(dòng)化測(cè)試一體化協(xié)作工具:點(diǎn)擊使用
本教程操作環(huán)境:windows7系統(tǒng)、PHP8.1版、DELL G3電腦
數(shù)組中的每個(gè)實(shí)體都包含兩項(xiàng),分別是鍵(key)和值(value)。可以通過(guò)鍵值來(lái)獲取相應(yīng)的數(shù)組元素,這些鍵可以是數(shù)值鍵,也可以是關(guān)聯(lián)鍵。如果說(shuō)變量是存儲(chǔ)單個(gè)值的容器,那么數(shù)組就是存儲(chǔ)多個(gè)值的容器。
數(shù)組可以存入不同類(lèi)型的數(shù)據(jù),是一個(gè)復(fù)合數(shù)據(jù)類(lèi)型。數(shù)據(jù)結(jié)構(gòu)如下圖:
在 PHP 數(shù)組中,無(wú)論什么類(lèi)型的鍵名都會(huì)有一個(gè)值與其相對(duì)應(yīng),即一個(gè)鍵/值對(duì),根據(jù)數(shù)組鍵名數(shù)據(jù)類(lèi)型的不同,我們可以把 PHP 數(shù)組分為兩種類(lèi)型:
-
以數(shù)字作為鍵名的數(shù)組,即索引數(shù)組(Indexed Array);
-
以字符串或字符串、數(shù)字混合為鍵名的數(shù)組,即關(guān)聯(lián)數(shù)組(Associative Array)。
PHP 關(guān)聯(lián)數(shù)組
關(guān)聯(lián)數(shù)組的下標(biāo)(鍵名)由數(shù)值和字符串混合的形式組成,如果一個(gè)數(shù)組中有一個(gè)鍵名不是數(shù)字,那么這個(gè)數(shù)組就是關(guān)聯(lián)數(shù)組。
'蘋(píng)果','1' => '香蕉','2' => '橘子','3' => '李子','4' => '草莓'); var_dump($arr1); echo "關(guān)聯(lián)數(shù)組:"; $arr2 = array('Apple' => '蘋(píng)果','Banana' => '香蕉','Orange' => '橘子','Plum' => '李子','Strawberry' => '草莓'); var_dump($arr2); $arr3 = array('蘋(píng)果','香蕉','橘子','Plum' => '李子','草莓'); var_dump($arr3); ?>
關(guān)聯(lián)數(shù)組的鍵名可以是任何一個(gè)整數(shù)或字符串。如果鍵名是一個(gè)字符串,則要給這個(gè)鍵名加上一個(gè)定界修飾符——單引號(hào)''
或雙引號(hào)""
。對(duì)于索引數(shù)組,為了避免混清,最好也加上定界符。
注:鍵名不可以為NULL
。
擴(kuò)展知識(shí):索引數(shù)組和關(guān)聯(lián)數(shù)組可以相互轉(zhuǎn)換
1、關(guān)聯(lián)數(shù)組轉(zhuǎn)為索引數(shù)組
array_values()函數(shù)的作用是返回?cái)?shù)組中所有元素的值
array_values(array)
使用起來(lái)非常簡(jiǎn)單,只有一個(gè)必選參數(shù),就可以返回一個(gè)包含給定數(shù)組中所有值的數(shù)組,但不保留鍵名。被返回的數(shù)組將使用索引數(shù)組的形式,數(shù)組的索引從 0 開(kāi)始且以 1 遞增。
簡(jiǎn)單來(lái)說(shuō),利用該函數(shù)可以重置數(shù)組鍵名,將字符串或數(shù)值混亂的鍵名轉(zhuǎn)為從0開(kāi)始且以1遞增的數(shù)字鍵名。
array_values() 函數(shù)特別適合用于數(shù)組中元素下標(biāo)混亂的數(shù)組(可重置數(shù)字鍵),或者用于將關(guān)聯(lián)數(shù)組轉(zhuǎn)化為索引數(shù)組。
65,"Harry"=>80,"John"=>78,"Clark"=>90,2,3,4); echo "原數(shù)組:"; var_dump($arr); $res=array_values($arr); echo "轉(zhuǎn)為索引數(shù)組后:"; var_dump($res); ?>
2、索引數(shù)組轉(zhuǎn)為關(guān)聯(lián)數(shù)組
array_combine()函數(shù)通過(guò)合并兩個(gè)數(shù)組的方式創(chuàng)建了一個(gè)新數(shù)組,其中$keys
數(shù)組中的元素作為了新數(shù)組的鍵名,$values
數(shù)組的元素為作為了新數(shù)組的鍵值。
array_combine($keys,$values)
但需要注意的是,使用array_combine()函數(shù)創(chuàng)建數(shù)組時(shí),$keys
數(shù)組和$values
數(shù)組中的元素個(gè)數(shù)必須要一致,這才能讓鍵名和鍵值一一對(duì)應(yīng),否則就會(huì)報(bào)錯(cuò)并返回 FALSE。
且$keys
數(shù)組不可為多維數(shù)組,否則也會(huì)報(bào)錯(cuò);但$values
數(shù)組可以為多維數(shù)組。
推薦學(xué)習(xí):《PHP視頻教程》