PHP 陣列實為有序映射,支援整數與字串鍵混用,且值類型不限。本文詳細說明陣列建立語法、索引自動生成規則、多維陣列結構、常用填充函式,並附上豐富程式碼範例。
<?php
$str = "abcd";
echo $str[0] . ' ' . $str[1] . ' ' . $str[2] . ' ' . $str[3]; // a b c d
?>
array() 語法(傳統)$arr = array("www", "helpphp", "cn");
echo $arr[0] . '.' . $arr[1] . '.' . $arr[2]; // www.helpphp.cn
[](PHP 5.4+ 推薦)$arr = ["www", "helpphp", "cn"]; // 等同 array(...)
2.7 => 2)$arr = []; // 宣告空陣列
$arr[] = "a"; // 追加,索引 0
$arr["key"] = "b"; // 指定字串鍵
$arr[0] = "c"; // 修改索引 0 的值
// 結果:[0 => "c", "key" => "b"]
| 程式碼 | 結果結構 | 說明 |
|---|---|---|
array("a", "b", "c") | [0=>"a", 1=>"b", 2=>"c"] | 純索引陣列 |
array("a"=>"A", "b", "c") | ["a"=>"A", 0=>"b", 1=>"c"] | 指定字串鍵後,數字索引從 0 重新開始 |
array(2=>"a", 0=>"b", "c") | [2=>"a", 0=>"b", 3=>"c"] | 最大整數鍵為 2,下一個自動索引為 3 |
array("a", 2.7=>"b", 0=>"c") | [0=>"c", 2=>"b"] | 浮點鍵取整,後指定鍵覆蓋先前同鍵值 |
array(-2=>"a", "b", "c") | [-2=>"a", 0=>"b", 1=>"c"] | 負數鍵不影響自動索引 |
$matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
echo $matrix[1][2]; // 6
// 關聯式多維
$users = [
'john' => ['age' => 25, 'city' => 'Taipei'],
'mary' => ['age' => 30, 'city' => 'Taichung']
];
echo $users['mary']['city']; // Taichung
range(2, 5); // [2, 3, 4, 5] 產生連續整數陣列
range('a', 'd'); // ['a', 'b', 'c', 'd'] 字元範圍
count($arr); // 陣列元素個數
array_pad($arr, 5, 0); // 長度不足 5 時用 0 填充右側,超過則不變
array_pad($arr, -5, 0); // 負數長度填充左側
SplFixedArray 節省記憶體[],否則輸出物件 {}[] 語法不可用於 PHP 5.3 以下版本