首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 陣列函數完整參考指南:建立、合併、搜尋與排序操作詳解

     編輯:PHP 相關知識

PHP 陣列核心函數分類速查

PHP 內建了豐富的陣列操作函數,掌握這些函數能大幅提升開發效率。本文將常用函數按功能分類整理,包含參數說明與回傳值,方便開發者快速查閱。

一、陣列建立與轉換

函數名用途語法格式參數說明回傳值
array()建立新陣列array(mixed ...$values)值的列表,或 key => value 形式新陣列
array_combine()以一個陣列為鍵、另一個為值建立陣列array_combine(array $keys, array $values)$keys: 鍵名陣列,$values: 數值陣列合併後的陣列,失敗回傳 false
range()建立指定範圍的陣列range(mixed $start, mixed $end, number $step = 1)$start: 起始值,$end: 結束值,$step: 步長包含範圍內元素的陣列
compact()將變數名與值組成陣列compact(mixed $varname, mixed ...$vars)變數名稱字串或包含變數名的陣列以變數名為鍵、值為值的陣列
array_fill()以指定值填充陣列array_fill(int $start_index, int $count, mixed $value)$start_index: 起始鍵名,$count: 元素數量,$value: 填充值填充完成的陣列

二、陣列合併與拆分

函數名用途語法格式參數說明回傳值
array_chunk()將陣列分割成多個區塊array_chunk(array $array, int $length, bool $preserve_keys = false)$array: 目標陣列,$length: 每區塊大小,$preserve_keys: 是否保留鍵名多維陣列
array_merge()合併一或多個陣列array_merge(array ...$arrays)待合併的陣列列表合併後的陣列,字串鍵名後者覆蓋前者,數字鍵名重新索引

三、陣列比較運算

函數名用途語法格式回傳值
array_diff()計算陣列差集(只比較值)array_diff(array $array, array ...$arrays)存在於第一個陣列但不在其他陣列中的值
array_intersect()計算陣列交集(只比較值)array_intersect(array $array, array ...$arrays)所有陣列中都存在的值

四、陣列搜尋、切片與替換

函數名用途關鍵參數與行為
array_search()搜尋值並回傳對應鍵名$strict 參數決定是否檢查型別(===),找到回傳鍵名,否則 false
array_slice()截取陣列片段$offset 可為負數(從末端倒數),$length 可為負數(截取到倒數第 N 位),$preserve_keys 決定是否保留原鍵名
array_splice()移除並選擇性替換陣列片段直接修改原陣列(傳址),回傳被移除的元素,鍵名不保留
array_sum()計算陣列數值總和忽略非數值元素,回傳整數或浮點數
in_array()檢查值是否存在於陣列$strict 參數啟用嚴格模式,回傳布林值
array_key_exists()檢查鍵名是否存在別名 key_exists(),回傳布林值

五、陣列指標操作

這組函數操作陣列內部指標,常用於 while(list($k,$v)=each($arr)) 等舊式迴圈:

  • key():取得當前元素鍵名
  • current() / pos():取得當前元素值
  • next()、prev():移動指標到下一個/上一個
  • end()、reset():移動到最後/第一個元素
  • each():回傳當前鍵值對並將指標前進

六、陣列堆疊與佇列操作

函數名行為回傳值
array_push()將一或多個元素壓入陣列末尾新陣列長度
array_pop()彈出陣列最後一個元素被彈出的元素值
array_shift()移除陣列第一個元素(鍵名重新索引)被移除的元素值
array_unshift()在陣列開頭插入一或多個元素新陣列長度

七、陣列鍵值操作

函數名用途備註
shuffle()打亂陣列順序保留鍵名關聯,回傳布林值
count()計算元素數量可設 COUNT_RECURSIVE 遞歸計算多維陣列
array_flip()交換鍵與值值必須為有效鍵型別(整數/字串)
array_keys()取得所有鍵名可選 $search_value 與 $strict 過濾特定值的鍵
array_values()取得所有值並重新索引回傳數字索引陣列
array_reverse()回傳順序反轉的陣列$preserve_keys 決定是否保留原鍵名
array_count_values()統計所有值出現次數回傳「值=>次數」的陣列
array_rand()隨機取出一或多個鍵名回傳鍵名(非值),$num>1 時回傳鍵名陣列
array_unique()移除重複值保留首次出現的鍵名,值排序後比較

八、陣列排序函數對照表

函數排序依據順序保留鍵名備註
sort()值低到高否重新索引
rsort()值高到低否重新索引
asort()值低到高是關聯陣列常用
arsort()值高到低是
ksort()鍵名低到高是
krsort()鍵名高到低是
natsort()值(自然排序)自然順序是如 "img2" < "img10"
natcasesort()值(自然排序,不分大小寫)自然順序是

所有排序函數皆直接修改原陣列(傳址),成功回傳 true,失敗回傳 false。可選 $flags 參數控制比較模式(SORT_REGULAR、SORT_NUMERIC、SORT_STRING、SORT_LOCALE_STRING、SORT_NATURAL、SORT_FLAG_CASE)。


資料整理自《戰地日記_LAMP兄弟連》分享版,部分函數說明已修正補全。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved