1. 動態新增元素(自動索引)
$arr = ["a", "b", "c"];
$arr[] = "Simon"; // 索引自動為 3
print_r($arr);
2. 指定數字索引新增
$arr = ["a", "b", "c"];
$arr[9] = "Simon"; // 索引為 9,中間 3-8 空缺
print_r($arr);
3. 完整 CRUD 操作示範
$arr = [0=>1, 1=>2, 2=>3, 3=>4, 6=>5];
print_r($arr);
// 更新鍵為 2 的值
$arr[2] = 100;
print_r($arr);
// 新增字串鍵
$arr["X"] = 50;
print_r($arr);
// 刪除所有元素但保留陣列結構
foreach ($arr as $i => $v) unset($arr[$i]);
print_r($arr); // 空陣列,但變數存在
// 重新加入元素
$arr[] = 25; // 索引從 0 開始
print_r($arr);
// 重新索引(連續數字索引)
$arr = array_values($arr);
$arr[] = 13;
print_r($arr);
關鍵函數速查
| 操作 | 函數/語法 | 說明 |
| 新增 | $arr[] = $val | 自動分配下一個數字索引 |
| 指定索引新增 | $arr[9] = $val | 可建立稀疏陣列 |
| 更新 | $arr[$key] = $val | 鍵存在則覆蓋,不存在則新增 |
| 刪除單元素 | unset($arr[$key]) | 不重設索引,陣列變稀疏 |
| 刪除全部 | foreach($arr as $k=>$v) unset($arr[$k]) | 保留陣列變數 |
| 重新索引 | array_values($arr) | 重設為 0 起始連續索引,捨棄原鍵 |
| 鍵值互換 | array_flip($arr) | 值必須為字串/整數且唯一 |
實戰提醒
unset() 後陣列索引不連續,count() 仍正確,但 for($i=0;$i 會遺漏元素
- 遍歷稀疏陣列請用
foreach 或 array_values() 重建後再用 for
array_values() 會捨棄字串鍵,若需保留請用 array_merge($arr)(副作用:數字鍵重設)