善用內置函數是寫出高效、可維護 PHP 代碼的關鍵。本文歸納高頻數組函數,附代碼示例與輸出結果,建議收藏備查。
$my = ['hehe'=>'haha', 'A'=>'lu', 'lu'=>'ge']; $new = array_splice($my, 1, 3); // 從偏移 1 刪除 3 個,返回被刪部分 var_dump($new); // ['A'=>'lu', 'lu'=>'ge']
foreach ($my as $key => $value) {
echo "$key => $value\n";
}
/* 輸出:
hehe => haha
A => lu
lu => ge
*/
| 函數 | 排序依據 | 順序 | 鍵名保留 |
|---|---|---|---|
sort() | 值 | 升序 | ❌ 重建 0..n |
rsort() | 值 | 降序 | ❌ |
asort() | 值 | 升序 | ✅ |
arsort() | 值 | 降序 | ✅ |
ksort() | 鍵 | 升序 | ✅ |
krsort() | 鍵 | 降序 | ✅ |
$arr = [1,2,3,6,7,8,9,4,5]; sort($arr); // [0=>1, 1=>2, 2=>3, 3=>4, 4=>5, 5=>6, 6=>7, 7=>8, 8=>9] asort($arr); // 鍵名不變,值排序:[0=>1, 1=>2, 2=>3, 7=>4, 8=>5, 3=>6, 4=>7, 5=>8, 6=>9]
$arr = [1,2,3,6,7,8,9,4,5]; echo array_sum($arr); // 45 echo count($arr); // 9
$arr = [1,2,3,6,7,8,9,4,5,5,5,5]; array_unique($arr); // 去重(保留鍵名):[0=>1, 1=>2, 2=>3, 3=>6, 4=>7, 5=>8, 6=>9, 7=>4, 8=>5] in_array(5, $arr); // true (值存在性檢查) array_search(6, $arr); // 3 (返回對應鍵名) shuffle($arr); // 打亂順序(原地修改)
array_key_first() / array_key_last():獲取首尾鍵名(O(1))。array_is_list() (PHP 8.1+):判斷是否為連續索引數組(列表)。array_column():提取多維數組單列(極其高頻)。array_map() / array_filter() / array_reduce():函數式處理三劍客。