PHP數組在咱們開發中使用的頻率之高可想而知,凡是和數據庫打交道的都須要用到數組,並且處理好數組能更快的提高咱們的工做效率,因而整理了PHP數組相關的函數算法
PHP數組相關函數
數組排序相關函數
- 對多個數組或多維數組進行排序: array_multisort
- 返回一個順序相反的數組: array_reverse
- 對數組逆向排序並保持鍵值對關係: arsort
- 對數組進行順序排序並保持鍵值對關係: asort
- 按照數組鍵名逆向排序: krsort
- 按照數組鍵名順序排序: ksort
- 不區分大小寫對數組排序: natcasesort
- 按照天然算法對數組進行排序,區分大小寫: natsort
- 對數組逆向排序: rsort
- 將數組打亂: shuffle
- 對數組排序: sort
- 使用自定義比較函數對數組的值進行排序並保持索引關係: uasort
- 用自定義比較函數對數組的鍵名進行排序: uksort
- 用之定義比較函數對數組進行排序: usort
數組的鍵值操做函數
- 數組鍵名大小寫轉換函數: array_change_key_case
- 將一個鍵的數組和一個值的數組合併成一個鍵值對的數組: array_combine
- 使用指定的鍵值填充數組: array_fill_keys
- 使用指定的值填充數組: array_fill
- 交換數組的鍵值: array_flip
- 檢查鍵名或者索引是否在數組中: array_key_exists
- 得到數組中全部的鍵名: array_keys
- 獲取數組中全部的值: array_values
- 將數組的鍵值對轉換爲變量,並對變量進行檢測是否存在和是否須要覆蓋: extract
- 檢查數組中是否存在鍵: key_exists
- 獲取數組當前值的鍵名: key
- 將數組中的值賦值給一些變量: list
數組的分割和合並函數
- 按指定的長度將一個數組拆分紅多個數組: array_chunk
- 遞歸的合併一個或多個數組: array_merge_recursive
- 合併一個或多個數組: array_merge
多維數組的操做
- 返回多維數組中指定鍵的一列: array_column
- 對數組的值遞歸的使用自定義函數: array_walk_recursive
- 對數組的值使用自定義函數: array_walk
多數組操做
- 將一個鍵的數組和一個值的數組合併成一個鍵值對的數組: array_combine
- 檢查多個數組中和第一個數組差集含索引的差集檢查: array_diff_assoc
- 檢查多個數組中和第一個數組的差集: array_diff_key
- 經過回調函數作索引來計算數組的差集: array_diff_uassoc
- 經過回調函數來對比鍵名返回數組的差集: array_diff_ukey
- 檢查多個數組和第一個數組的差集不含鍵的檢查: array_diff
- 帶索引檢查多個數組和第一個數組的交集: array_intersect_assoc
- 使用鍵名比較多個數組和第一個數組的交集: array_intersect_key
- 使用回調函數比較多個數組和第一個數組索引的交集: array_intersect_uassoc
- 使用回調函數來比較多個數組和第一個數組鍵名的交集: array_intersect_ukey
- 檢查多個數組和第一個數組的交集: array_intersect
數組的統計相關函數
- 統計數組中全部值出現的次數: array_count_values
數組的回調操做
- 經過回調函數作索引來計算數組的差集: array_diff_uassoc
- 經過回調函數來對比鍵名返回數組的差集: array_diff_ukey
- 使用回調函數比較多個數組和第一個數組索引的交集: array_intersect_uassoc
- 使用回調函數來比較多個數組和第一個數組鍵名的交集: array_intersect_ukey
- 使用回調函數對數組進行處理: array_map
- 使用回調函數迭代的將數組替換成一個值: array_reduce
- 使用回掉函數迭代遞歸數組替換成第一個數組的值: array_replace_recursive
- 使用傳遞的數組替換第一個數組中的制定鍵的值: array_replace
- 帶索引並用回調函數計算數組值的差集: array_udiff_assoc
- 帶索引並用回調函數計算數組鍵值對的差集: array_udiff_uassoc
- 使用回調函數來計算數組的差集: array_udiff
- 帶索引並使用回調函數檢查數組值的交集: array_uintersect_assoc
- 帶索引並使用回調函數檢查數組鍵值對的交集: array_uintersect_uassoc
- 用回調函數計算數組的交集: array_uintersect
數組的增刪改查
- 使用指定的值將數組填充到指定的長度: array_pad
- 返回數組的最後一個值: array_pop
- 將一個或多個數組壓入第一個數組: array_push
- 搜索數組中制定的值: array_search
- 將數組的第一個元素移出數組: array_shift
- 讀取出數組的一部分: array_slice
- 刪除數組一部分值或者用其餘的值替代: array_splice
- 刪除數組中重複的值: array_unique
- 在數組開頭插入值: array_unshift
- 新建一個數組: array
- 使用變量名及值創建一個數組: compact
- 獲取數組中當前的值: current
- 遞歸獲取數組當前的鍵值對: each
- 獲取數組的最後一個元素的值: end
- 判斷數組中是否存在某個值: in_array
- 將數組的指針倒退一位: prev
- 當前數組的值: pos
- 將數組指針向前移動一位: next
- 將數組的指針指向第一個元素: reset
- 建立一個制定範圍的數組: range
數組的計算
- 返回數組中全部值的乘積: array_product
- 從數組中取出一個或多個值: array_rand
- 求數組中全部值的和: array_sum
- 計算數組中值的個數: count
- 計算數組中值的個數: sizeof
開發中經常使用數組函數
在開發過程當中,我的使用較多的函數依次是:
- array_rand 在作抽獎系統的時候用到,隨機的獲取一個獲獎的等級
- count 經常使用的函數,統計一維數組和多維數組的長度
- sort 在微信公衆平臺開發的時候用到這個函數來進行token的組裝驗證
- array_fill 在開發抽獎系統的時候填充獲獎等級及中獎機率的時候用到
- array_key_exists 在校驗數據合法性的時候經常使用,在驗證是否包含指定的鍵時經常使用
- array_keys 在數據合法性的時候常常使用到,根據鍵和值來校驗
- array_merge_recursive 在ThinkPHP編寫配製文件及多維數組合並的時候經常使用
- array_merge 兩個數組合並
- array_column 從數據庫中讀取數據合併並整理後常使用到,用於查找指定的列的集合
- array_pop 在作緩存隊列的時候經常使用到
- array_push 在作緩存隊列的時候經常使用到
- array_search 有用到但很少,大部分是使用 in_array 進行一維數組的檢查,此函數支持多維數組及大小寫的檢測
- array_shift 在作緩存隊列的時候經常使用到
- array_unshift 在作緩存隊列的時候經常使用到
- array 經常使用,可是愈來愈多的使用 [] 來建立數組了
- in_array 經常使用,用於校驗和判斷
- range 在生成隨機數組的時候用到