PHP 常用函數


PHP之數組函數歸類

 

     數組之所以強大,除了本身聲明、存儲方式靈活,它還有堅強后盾:一系列功能各異的數組處理函數。就像一只軍隊,除了領隊將軍本身能征善戰,指揮英明之外,還有一群不怕死、忠實於他的士兵,這樣才能顯得整體的強大。

     由於函數眾多,易記混,況且還有手冊在那兒,但是,最好還是每一個都魯一遍,說不定要用到呢~

     一、鍵/值處理

     array_values()   返回數組中的值

     array_keys   返回數組中的鍵名

     array_change_key_case   返回全為大寫會小寫的數組的鍵名

     array_column   返回指定鍵名的列,版本須>=5.5

     in_array/array_search   判斷值是否在數組中,注意默認為不嚴格的比較,不對型和值同時作檢查,只要能轉為相同的值就可以

     array_key_exists   判斷鍵是否在數組中

     array_flip   將鍵與值反轉,對調位置,鍵變為值,值變為鍵。對於相同的值,變換為鍵后,后面的鍵將把前面的鍵覆蓋

     array_reverse   倒置數組,與原順序相反

     二、全值統計

     array_sum   求數組中的所有值的和

     array_product   求數組中所有值得積

     count/sizeof    返回數組中元素個數

     array_count_values   返回每個值出現的次數,鍵名為該值 

     三、切刪處理

     array_chunk   將數組分塊,比如將一維數組切分成更小size的數組,最后各個數組整合在一起形成二維數組返回

     array_slice   從數組中切一段返回,注意傳入偏移、長度參數的正負,偏移為正則從數組左邊開始,為負則從末端倒數這么多個開始。長度為正則切出這么多個,為負則切到末端倒數到這個長度值為止

     array_splice   從數組中切出一段,要么刪除,要么用其他值代替刪除的一部分,注意傳入偏移和長度參數的正負

     array_unique   將重復值歸並為一個,非嚴格判斷

     四、填充處理

     array_pad   用指定值將數組填充到指定長度,指定長度小於本身長度時不作處理

     array_fill   指定偏移、長度、填充值,返回填充后的數組

     array_fill_keys(array $keys, mixed $value)    以一個作為鍵的數組和指定值來生成一個數組

     五、集合運算

     array_diff    差集,僅比較值

     array_diff_key   差集,僅比較鍵

     array_diff_assoc    差集,比較鍵和值,即當鍵與值均相同時才被認為是同樣的元素。判斷同與不同均執行嚴格的全等於檢查

     array_diff_ukeys    使用用戶自定義函數,通過鍵名比較,帶u的表示user,即用戶自定義的比較形式

     array_diff_uassoc    自定義函數,鍵和值比較差值運算

   

     array_intersect    交集運算,類上

     array_intersect_key    

     array_intersect_assoc   

     array_intersect_ukey

     array_intersect_uassoc

 

      array_merge   並集,注意當為字符串索引且相同時后一個值會覆蓋前一個值,當為整數索引時只會將后一個值附加上來

      array_merge_recursive   遞歸合並,即當數組中元素仍為數組時,繼續執行並操作,注意此時相同的字符串鍵名的元素會合並到同一個數組中去,整數索引的元素仍為附加

對於差集和交集,還有用回調函數處理值的(array_udiff),或同時使用兩個回調函數來處理鍵和值(array_udiff_uassoc、array_uintersect_uassoc)等等。

      六、類數據結構處理

      array_push   從數組末尾添加元素,可一次添加多個

      array_pop   從末端彈出一個元素

      array_shift  從頭部彈出一個元素

      array_unshift   從頭部添加一個元素  

      以上函數就可以模擬棧、隊列等結構

      七、使用回調函數

      array_reduce   使用自定義函數將數組中的值轉化為一個值,比如相乘、相加等

      array_walk   對數組中每個元素使用回調函數遍歷一遍

      array_walk_recursive   上面的遞歸版本,子元素為數組時,將子元素中的每一個元素再使用回調函數處理一遍

      array_filter   使用回調函數設定條件,對數組元素過濾,比如取奇數

      array_map  可以傳遞多個數組,回調函數的參數個數需與數組參數個數保持一致,遍歷處理時參數與數組參數順序一一對應,返回回調處理后的一維數組。如果數組元素不夠將以空代替 

     八、排序函數

     sort    升序排列,可以更改各種排序模式

     rsort   降序排列(r:reverse,顛倒,倒置,即反向的意思)

     usort   使用用戶自定義函數排序

     asort   升序排列,保持原索引不變

     arsort   類上的降序排列 

     uasort   用戶自定義函數升序排列,保持原鍵名

     ksort   按照鍵名,升序排列

     uksort   使用用戶自定義函數,按照鍵名升序排列

     krsort   按照鍵名,降序排列

     natsort   使用自然排序法進行升序排列  

     natcasesort   natsort不區分大小寫的版本

     array_multisort   對多個或多維數組排序,實現多個或多維數組聯動排序,可達到SQL語句的order by多個字段的效果

     九、其他函數

     range   生成指定范圍的索引數組

     array_rand    隨機返回數組中的若干個鍵名,默認返回一個

     shuffle   將數組內元素打亂

     array_combine   以一個數組值作為鍵,另一個數組值作為值,聯接生成一個數組

     implode   將數組連接為一個字符串

     explode   將字符串劈分成一個數組


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM