<?php
// 1. 索引陣列 (數字鍵 0 起始)
$fruits = ['apple', 'orange', 'banana'];
echo $fruits[0]; // apple
echo $fruits[1]; // orange
// 2. 數值陣列
$numbers = [1, 2, 3, 4, 5];
// 3. 混合型別陣列
$mixed = [1, 'example', 'hello', 2.5];
// 4. 關聯陣列 (字串鍵)
$ex = ['a' => '水果', 'b' => '汽車'];
echo $ex['a']; // 水果
echo $ex['b']; // 汽車
// 5. 巢狀關聯陣列
$complex = [
'user' => [
'id' => 1,
'name' => 'John',
'tags' => ['vip', 'active']
],
'settings' => [
'theme' => 'dark',
'lang' => 'zh-TW'
]
];
echo $complex['user']['name']; // John
echo $complex['user']['tags'][0]; // vip
?>
<?php
// 範圍建立
$range = range(1, 10); // [1..10]
$letters = range('a', 'f'); // ['a'..'f']
// 固定值填充
$filled = array_fill(0, 5, 'default'); // ['default', 'default', ...]
// 鍵值互換
$flipped = array_flip(['a' => 1, 'b' => 2]); // [1 => 'a', 2 => 'b']
// 合併 (字串鍵後者覆蓋)
$merged = array_merge(['a' => 1], ['a' => 2, 'b' => 3]); // ['a' => 2, 'b' => 3]
// 聯集 (鍵保留第一個)
$union = ['a' => 1] + ['a' => 2, 'b' => 3]; // ['a' => 1, 'b' => 3]
?>
<?php
$data = ['a' => 1, 'b' => 2, 'c' => 3];
// 基礎遍歷
foreach ($data as $value) {
echo $value . "\n";
}
// 鍵值遍歷
foreach ($data as $key => $value) {
echo "$key => $value\n";
}
// 參考修改
foreach ($data as &$value) {
$value *= 10;
}
unset($value); // 重要:解除參考
// 陣列函數鏈
$result = array_map(fn($v) => $v * 2, $data); // [2, 4, 6]
$filtered = array_filter($data, fn($v) => $v > 1); // ['b' => 2, 'c' => 3]
$sum = array_sum($data); // 6
?>
<?php
// $_POST 範例
$formData = [
'username' => 'john_doe',
'email' => 'john@example.com',
'interests' => ['php', 'javascript', 'mysql'], // checkbox 陣列
'profile' => [
'bio' => 'Developer',
'avatar' => 'avatar.png'
]
];
// 驗證必填
$required = ['username', 'email'];
$missing = array_diff($required, array_keys($formData));
if ($missing) {
throw new Exception('缺少欄位: ' . implode(', ', $missing));
}
// 過濾允許欄位
$allowed = ['username', 'email', 'interests'];
$clean = array_intersect_key($formData, array_flip($allowed));
// 陣列值轉字串存儲
$clean['interests'] = json_encode($clean['interests']);
// 或 implode(',', $clean['interests'])
?>
陣列是 PHP 最核心的資料結構,靈活運用各種建構與操作函數,能大幅簡化資料處理邏輯。