首頁 >後端開發 >PHP問題 >php中什麼是關聯數組

php中什麼是關聯數組

青灯夜游
青灯夜游原創
2022-09-30 16:13:054708瀏覽

在php中,關聯數組是值以字串或字串、數字混合為鍵名的數組;如果一個數組中有一個鍵名不是數字,那麼這個數組就是關聯數組。關聯數組的鍵名可以是任何一個整數或字串;如果鍵名是一個字串,則要給這個鍵名加上一個定界修飾符:單引號“''”或雙引號“""”。

php中什麼是關聯數組

本教學操作環境:windows7系統、PHP8.1版、DELL G3電腦

陣列中的每個實體都包含兩項,分別是鍵(key)和值(value)。可以透過鍵值來取得對應的陣列元素,這些鍵可以是數值鍵,也可以是關聯鍵。如果說變數是儲存單一值的容器,那麼陣列就是儲存多個值的容器。

陣列可以存入不同類型的數據,是複合資料型態。資料結構如下圖:

php中什麼是關聯數組

在PHP 陣列中,無論什麼類型的鍵名都會有一個值與其相對應,即一個鍵/值對,根據數組鍵名資料類型的不同,我們可以把PHP 數組分成兩種類型:

  • 以數字作為鍵名的數組,即索引數組(Indexed Array);

  • 以字串或字串、數字混合為鍵名的數組,即關聯數組(Associative Array)。

PHP 關聯陣列

#關聯陣列的下標(鍵名)由數值和字串混合的形式組成,如果一個數組中有一個鍵名不是數字,那麼這個數組就是關聯數組。

<?php
header("Content-type:text/html;charset=utf-8");
echo "索引数组:";
$arr1 = array(&#39;0&#39; => &#39;苹果&#39;,&#39;1&#39; => &#39;香蕉&#39;,&#39;2&#39; => &#39;橘子&#39;,&#39;3&#39; => &#39;李子&#39;,&#39;4&#39; => &#39;草莓&#39;);
var_dump($arr1);

echo "关联数组:";
$arr2 = array(&#39;Apple&#39; => &#39;苹果&#39;,&#39;Banana&#39; => &#39;香蕉&#39;,&#39;Orange&#39; => &#39;橘子&#39;,&#39;Plum&#39; => &#39;李子&#39;,&#39;Strawberry&#39; => &#39;草莓&#39;);
var_dump($arr2);
$arr3 = array(&#39;苹果&#39;,&#39;香蕉&#39;,&#39;橘子&#39;,&#39;Plum&#39; => &#39;李子&#39;,&#39;草莓&#39;);
var_dump($arr3);
?>

php中什麼是關聯數組

關聯陣列的鍵名可以是任何一個整數或字串。如果鍵名是字串,則要給這個鍵名加上定界修飾符-單引號''或雙引號""。對於索引數組,為了避免混清,最好也加上定界符。

附註:鍵名不可以為NULL

擴展知識:索引數組和關聯數組可以相互轉換

#1、關聯數組轉為索引數組

array_values()函數的作用是傳回數組中所有元素的值

array_values(array)

使用起來非常簡單,只有一個必選參數,就可以傳回一個包含給定數組中所有值的數組,但不保留鍵名。被傳回的陣列將使用索引數組的形式,數組的索引從 0 開始且以 1 遞增。

簡單來說,利用函數可以重置數組鍵名,將字串或數值混亂的鍵名轉為從0開始且以1遞增的數字鍵名。

array_values() 函數特別適合用於數組中元素下標混亂的陣列(可重置數字鍵),或用於將關聯數組轉換為索引數組。

<?php
header(&#39;content-type:text/html;charset=utf-8&#39;);  
$arr=array("Peter"=>65,"Harry"=>80,"John"=>78,"Clark"=>90,2,3,4);
echo "原数组:";
var_dump($arr);
$res=array_values($arr);
echo "转为索引数组后:";
var_dump($res);
?>

php中什麼是關聯數組

2、索引數組轉為關聯數組

array_combine()函數透過合併兩個數組的方式創建了一個新數組,其中$keys數組中的元素作為了新數組的鍵名,$values數組的元素為作為了新數組的鍵值。

array_combine($keys,$values)

但要注意的是,使用array_combine()函數建立陣列時,$keys陣列和$values陣列中的元素數量必須一致,這才能讓鍵名和鍵值一一對應,否則就會報錯並回傳FALSE。

$keys數組不可為多維數組,否則也會報錯;但$values數組可以為多維數組。

<?php
header("Content-type:text/html;charset=utf-8");
$keys=array("a","b","c","d");
$values=array("red","green","blue","yellow");
var_dump($keys);
var_dump($values);
echo "使用array_combine()合并数组后:";
var_dump(array_combine($keys,$values));
?>

php中什麼是關聯數組

推薦學習:《PHP影片教學

以上是php中什麼是關聯數組的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn