天天看點

PHP數組常用操作與常用排序函數

1、統計數組中元素個數: int count(mixed array [,int mode])--第二個參數值為COUNT_RECURSIVE(或1),使用本參數,本函數将會遞歸的對數組計數,對計算多元數組的所有單元尤其有用。此參數預設值為0. 2、向數組末尾加入一個元素:(将數組當為一個棧) int array_push(array array,mixed var)--第一個參數原數組,第二個參數被壓入的數組。 3、擷取數組最後一個元素: mixed array_pop(array array)--取出最後一個元素,數組元素個數減一, 4、去除數組中的重複元素: array array_unique()--删除數組中重複元素,索引保留 5、對數組中的元素進行随機排序: void shuffle()--将數組中的元素重新排序,并賦予新的索引 6、檢查數組中是否存在某個值: bool array_key_exists(key,array)--檢查給定的鍵名或索引key是否存在于數組array中 7、擷取數組中的目前元素: mixed current(array)--傳回數組内部指針指向的元素,但并不移動指針,超出數組的末端,傳回FALSE 8、從數組中随機抽取元素: mixed array_rand(array,num)--array:傳入數組,num:輸出數組元素的個數,傳回一個随機元素的鍵名或者包含随機鍵名的數組。 9、合并數組: array array_merge()--合并多個數組,将後面一個數組的值附加到前面一個數組中。如果這兩個數組有相同的字元串鍵名,則該鍵名後面的值将覆寫前面的值,如果有相同的數字鍵名,則後面的值的鍵名會改變并附加到前一個數組中。 10、拆分數組: array array_chunk(array,size)--array:源數組,size:分割成指定數量的數組 11、數組常用排序函數: 主要差別有: - 有些函數基于 array 的鍵來排序, 而其他的基于值來排序的:$array['key'] = 'value';。 - 排序之後鍵和值之間的關聯關系是否能夠保持, 是指排序之後數組的鍵可能 會被重置為數字型的(0,1,2 ...)。 - 排序的順序有:字母表順序, 由低到高(升序), 由高到低(降序),數字排序,自然排序,随機順序或者使用者自定義排序。 - 注意:下列的所有排序函數都是直接作用于數組本身, 而不是傳回一個新的有序的數組。 - 以下函數對于數組中相等的元素,它們在排序後的順序是未定義的。 (也即相等元素之間的順序是不穩定的)。

函數名稱           排序依據                         數組索引鍵保持                         排序的順序                      相關函數 array_multisort()  值                    鍵值關聯的保持,數字類型的不保持            第一個數組或者由選項指定               array_walk()

asort()            值                                是                                由低到高                         arsort()

arsort()           值                                是                                由高到低                         asort()

krsort()           鍵                                是                                由高到低                         ksort()

ksort()            鍵                                是                                由低到高                         asort()

natcasesort()      值                                是                           自然排序,大小寫不敏感                 natsort()

natsort()          值                                是                                自然排序                         natcasesort()

rsort()            值                                否                                由高到低                         sort()

shuffle()          值                                否                                  随機                           array_rand()

sort()             值                                否                                由高到低                         rsort()

uasort()           值                                是                                由使用者定義                       uksort()

uksort()           鍵                                是                                由使用者定義                       uasort()

usort()            值                                否                                由使用者定義                       uasort()