陣列是一種「有序的鍵值對集合」,可視為資料容器:一個變數儲存多筆資料,每筆資料擁有唯一鍵名。PHP 陣列同時具備列表、雜湊表、字典、堆疊、佇列等多種資料結構特性,極度靈活。
<?php
// 1. array() 語言結構 (傳統)
$arr1 = array(1 => '新浪', 2 => '網易', 3 => '騰訊', '雅虎'); // 雅虎自動鍵 4
// 2. 短語法 [] (PHP 5.4+ 推薦)
$arr2 = ['新浪', '網易', '騰訊', '雅虎']; // 鍵 0,1,2,3
// 3. 動態指派
$arr3 = [];
$arr3[] = 'Google'; // 自動遞增索引
$arr3['search'] = 'Bing'; // 指定字串鍵
?>
<?php
$arr = ['a', 'b', 5 => 'c', 'd'];
// 索引:0=>a, 1=>b, 5=>c, 6=>d (最大整數鍵 5,下一個自動 6)
?>
<?php
$arr = array(1 => '新浪', 2 => '網易', 3 => '騰訊', '雅虎');
// 存取單一元素
echo $arr[1]; // 新浪
echo $arr[4]; // 雅虎 (自動分配鍵 4)
// 遍歷輸出全部
foreach ($arr as $key => $value) {
echo "[$key] => $value\n";
}
/*
輸出:
[1] => 新浪
[2] => 網易
[3] => 騰訊
[4] => 雅虎
*/
?>
PHP 陣列在不同場景扮演不同角色:
| 角色 | 特徵 | 典型用法 |
|---|---|---|
| 列表 | 連續整數鍵 0..n | array_values(), foreach 循序處理 |
| 雜湊表/字典 | 字串鍵映射值 | $user['email'], isset($arr[$key]) |
| 集合 | 值唯一,鍵無意義 | array_unique(), in_array() |
| 堆疊 | 後進先出 | array_push(), array_pop() |
| 佇列 | 先進先出 | array_push(), array_shift() |
unset($arr[1]) 後索引變 0, 2, 3...,不會自動重排。需用 array_values() 重建索引$arr[0] 與 $arr['0']:兩者相同,PHP 自動轉換數值字串鍵echo $arr:只會輸出 Array 並觸發 Notice,需用 print_r()、var_dump() 或遍歷<?php
$arr = ['a' => 1, 'b' => [2, 3]];
print_r($arr); // 易讀結構
var_dump($arr); // 含型別、長度、參考資訊
var_export($arr); // 可執行的 PHP 代碼表示
?>
建立陣列概念正確,後續學習排序、過濾、映射、歸約等高階操作才能得心應手。