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