PHP 提供超過 80 個陣列函數,覆蓋創建、遍歷、排序、合併、過濾、搜尋、鍵值操作等各類場景。本手冊按字母順序列出所有函數及一行說明,方便開發快速查閱。
| 函數 | 說明 |
|---|---|
array() | 創建陣列 |
array_change_key_case() | 返回鍵名全大寫/小寫的陣列 |
array_chunk() | 將陣列分割為多個塊 |
array_combine() | 用一個陣列的值作鍵名,另一個作值創建新陣列 |
array_count_values() | 統計陣列中所有值出現的次數 |
array_diff() | 計算陣列差集(只比較值) |
array_diff_assoc() | 計算差集(比較鍵名和值) |
array_diff_key() | 計算差集(只比較鍵名) |
array_diff_uassoc() | 用回調函數比較鍵名和值計算差集 |
array_diff_ukey() | 用回調函數比較鍵名計算差集 |
array_fill() | 用指定值填充陣列 |
array_filter() | 用回調函數過濾陣列元素 |
array_flip() | 交換陣列中的鍵和值 |
array_intersect() | 計算陣列交集(只比較值) |
array_intersect_assoc() | 計算交集(比較鍵名和值) |
array_intersect_key() | 計算交集(只比較鍵名) |
array_intersect_uassoc() | 用回調比較鍵名和值計算交集 |
array_intersect_ukey() | 用回調比較鍵名計算交集 |
array_key_exists() | 檢查鍵名是否存在 |
array_keys() | 返回陣列所有鍵名 |
array_map() | 將回調函數應用到陣列每個元素 |
array_merge() | 合併一個或多個陣列 |
array_merge_recursive() | 遞歸合併陣列 |
array_multisort() | 對多個陣列或多維陣列排序 |
array_pad() | 將陣列填補到指定長度 |
array_pop() | 彈出陣列最後一個元素(出棧) |
array_product() | 計算陣列所有值的乘積 |
array_push() | 壓入一個或多個元素到陣列末尾(入棧) |
array_rand() | 從陣列隨機取一個或多個鍵名 |
array_reduce() | 用回調函數將陣列歸約為單一值 |
array_reverse() | 反轉陣列順序 |
array_search() | 在陣列中搜索值,返回鍵名 |
array_shift() | 刪除陣列第一個元素並返回 |
array_slice() | 從陣列中提取一段 |
array_splice() | 移除陣列一部分並替換 |
array_sum() | 計算陣列所有值的和 |
array_udiff() | 用回調比較值計算差集 |
array_udiff_assoc() | 用回調比較值和索引計算差集 |
array_udiff_uassoc() | 用回調比較值和索引計算差集 |
array_uintersect() | 用回調比較值計算交集 |
array_uintersect_assoc() | 用回調比較值和索引計算交集 |
array_uintersect_uassoc() | 用回調比較值和索引計算交集 |
array_unique() | 移除陣列中重複的值 |
array_unshift() | 在陣列開頭插入一個或多個元素 |
array_values() | 返回陣列所有值 |
array_walk() | 對陣列每個元素應用用戶函數 |
array_walk_recursive() | 遞歸對陣列每個元素應用用戶函數 |
arsort() | 逆向排序並保持索引關係 |
asort() | 排序並保持索引關係 |
compact() | 用變量名和值創建陣列 |
count() | 計算陣列元素數或對象屬性數 |
current() | 返回陣列當前元素 |
each() | 返回當前鍵值對並移動指針(PHP 7.2 棄用) |
end() | 將指針指向最後一個元素 |
extract() | 從陣列導入變量到符號表 |
in_array() | 檢查值是否存在於陣列 |
key() | 獲取關聯陣列當前鍵名 |
krsort() | 按鍵名逆向排序 |
ksort() | 按鍵名排序 |
list() | 將陣列值賦給變量列表 |
natcasesort() | 自然排序(不區分大小寫) |
natsort() | 自然排序 |
next() | 指針向前移動一位 |
pos() | current() 別名 |
prev() | 指針向後移動一位 |
range() | 創建指定範圍的陣列 |
reset() | 指針指向第一個元素 |
rsort() | 逆向排序 |
shuffle() | 打亂陣列順序 |
sizeof() | count() 別名 |
sort() | 排序 |
uasort() | 用戶自定義比較函數排序並保持索引 |
uksort() | 用戶自定義比較函數按鍵名排序 |
usort() | 用戶自定義比較函數排序 |
| 分類 | 代表函數 |
|---|---|
| 創建/填充 | array, range, array_fill, array_pad, compact |
| 合併/分割 | array_merge, array_merge_recursive, array_chunk, array_slice, array_splice |
| 搜尋/過濾 | in_array, array_search, array_filter, array_key_exists |
| 排序 | sort, rsort, asort, arsort, ksort, krsort, usort, uasort, uksort, natsort |
| 交集/差集 | array_intersect, array_diff 及 *_assoc/*_key/*_u* 變體 |
| 遍歷/映射 | array_map, array_walk, array_walk_recursive, array_reduce |
| 棧/隊列 | array_push, array_pop, array_unshift, array_shift |
| 鍵值轉換 | array_flip, array_keys, array_values, array_change_key_case |
| 統計/聚合 | array_count_values, array_sum, array_product, count |
| 去重/隨機 | array_unique, array_rand, shuffle |
array_merge() 數字鍵會重新索引,字符串鍵後者覆蓋前者;+ 運算符保留首次出現的鍵。in_array() 第三參數 true 開啟嚴格模式(類型也需匹配)。array_map() 多陣列時長度以最長為準,短陣列補 null。array_walk() 修改原陣列需傳引用 &$value。each()、list() 配合 while 遍歷在 PHP 7.2+ 棄用,改用 foreach。