ange($low, $high),range($low, $high, $step);//創建順序值的數組如:range(1,4)為(1,2,3,4)又如range('a','z')
each($array)按順序返回數組的當前元素,並且將下一個元素設置為當前元素;
reset($array)將數組當前元素重新設置到數組開始處
list()可以用來將一個數組分解為一系列的值,如 list($a,$b)=each($array)
shuffle($array),array_rand($arg, $num_req);對數組隨機排序
array_reverse($input),array_reverse($input, $preserve_keys) 返回原數組的反向排序
sort($array);對數組排序
PHP數組是一個重要的概念,它包含有大量的函數,方便人們的開發…現將它的數組分類,以方便查詢及應用.
先說說PHP數組的定義…PHP數組包含兩個項,key和value,可以通過key來獲取相應的value,其中key又可以是數值和關聯的,如$array[0],$array[one]…
創建數組
PHP中的數組聲明跟其它語言的也有點小小的差別,但一樣可以聲明為一維,兩維,三維及多維等,如
$array[0] = 1,$array = array(1,2,3); 一維數組,只包括三個值,屬於數值型數組,引用時可用$array[0]來代表1,創建數值數組時可以省略索引.
復制代碼 代碼如下:
$array = array(
1 => “one”,
2 => “two”,
3 => “three”,
4 => array(
“one” => 1,
“two” => 2,
“three” => 3
)
);
二維數組,同時又是關聯數組,引用時可以$array[4][“one”]來代表1.
三維以上依此類推…
如果要批量創建數組,則可以通過下面這個函數:
array range ( mixed low, mixed high [, number step] )
如$array = range(1,6);代表array(1,2,3,4,5,6);
$array = range(a,f); 代表 array(a,b,c,d,e,f);
輸出數組
PHP中輸出數組的函數有比較多,常用的有
bool print_r ( mixed expression [, bool return] )
void var_dump ( mixed expression [, mixed expression [, ...]] )
還有像echo,print,printf都可以輸出單個數組.
測試數組
有時我們需要判定一個變量是否為數組,則可以使用:
bool is_array ( mixed var )
增加或刪除數組元素
數組聲明後並不是一成不變的,可能通過對數組的增加刪除來進行深入的操作:
int array_push ( array &array, mixed var [, mixed ...] ) 將一個或多個單元壓入數組的末尾,數組的長度根據入棧變量的數目增加,如array_push($array,$var)
mixed array_pop ( array &array ) 將數組的最後一個元素彈出(出棧),並在結束後重置數組的指針
mixed array_shift ( array &array ) 返回數組的第一個元素.
int array_unshift ( array &array, mixed var [, mixed ...] ) 在數組的開頭插入一個或多個單元
array array_pad ( array input, int pad_size, mixed pad_value ) 用值將數組填補到指定的長度,如array_pad($array,3,$var);
定位數組元素
bool in_array ( mixed needle, array haystack [, bool strict] ) 檢查數組中是否存在某個值
array array_keys ( array input [, mixed search_value [, bool strict]] ) 返回數組中的所有鍵名,重組成一個新數組
bool array_key_exists ( mixed key, array search ) 檢查給定的key是否存在於數組中.
array array_values ( array input ) 返回數組中所有的值
mixed array_search ( mixed needle, array haystack [, bool strict] ) 在數組中搜索給定的值,成功則返回key.
遍歷數組
PHP中提供了很多獲取key和value的函數
mixed key ( array &array ) 從關聯數組中取得鍵名
mixed reset ( array &array ) 將數組指針重置
array each ( array &array ) 返回數組中的鍵/值對並將數組向前移一步
mixed current ( array &array ) 返回數組中的當前單元
mixed end ( array &array ) 將數組中的指針移向最後一位
mixed next ( array &array ) 將數組中的指針移向下一位
mixed prev ( array &array ) 將數組中的指針移向上一位
array array_reverse ( array array [, bool preserve_keys] ) 返回一個單元順序相反的數組
array array_flip ( array trans ) 將數組中的鍵值角色調換
除了上面的函數外還可以使用循環來對數組中的元素進行遍歷,如
foreach (array_expr as $value)
{ statement }
foreach (array_expr as $key=>$value)
{ statement }
提取每個鍵/值對,直到獲得所有項或滿足某些內部條件為止
void list ( mixed varname, mixed ... ) 把數組中的值賦給一些變量
確定數組大小和唯一性
int count ( mixed var [, int mode] ) 計算數組中單元數組或對象中屬性的個數, sizeof 的同名函數
array array_count_values ( array input ) 統計數組中所有值出現的次數
array array_unique ( array array ) 移除數組中重復的值
數組排序
這個聽說是計算器的核心問題…呵呵…事實也是這樣…
bool sort ( array &array [, int sort_flags] ) 對數組進行排序
bool natsort ( array &array ) 用自然排序法對數組進行排序
bool natcasesort ( array &array ) 用自然排序法對數組進行排序,不區分大小寫
bool rsort ( array &array [, int sort_flags] ) 對數組進行逆向排序
bool asort ( array &array [, int sort_flags] ) 對數組進行排序並保持索引關系
bool array_multisort ( array ar1 [, mixed arg [, mixed ... [, array ...]]] ) 對多個數組或多維數組進行排序
bool arsort ( array &array [, int sort_flags] ) 對數組進行逆序排序並保持索引關系
bool ksort ( array &array [, int sort_flags] ) 對數組按鍵名排序
bool krsort ( array &array [, int sort_flags] ) 對數組按鍵名逆序排序
合並,拆分,接合和分解數組
array array_combine ( array keys, array values ) 創建一個數組,一個數組的值作為其鍵名,另一個數組的值作為其值
array array_merge ( array array1 [, array array2 [, array ...]] ) 合並一個或多個數組
array array_merge_recursive ( array array1 [, array ...] ) 遞歸地全部一個或多個數組
array array_slice ( array array, int offset [, int length [, bool preserve_keys]] ) 從數組中取出一段,建立一個新的數組,如果offset為正數,拆分從距數組開關的offset位置開始,如果為負數,則拆分從距數組末尾的offset 位置開始,此時距數組開關的count(input_array)-|length|位置結束
array array_splice ( array &input, int offset [, int length [, array replacement]] ) 把數組中的部分值去掉,並用其它值替代.offset設置同上
array array_intersect ( array array1, array array2 [, array ...] ) 計算數組的交集,即是說如果第一個數組中出現過的值在接下來的幾個數組中都有出現,則取出該值
array array_intersect_assoc ( array array1, array array2 [, array ...] ) 帶索引檢查數組中的交集
array array_intersect_key ( array array1, array array2 [, array ...] ) 使用鍵名比較數組中的交集
array array_diff ( array array1, array array2 [, array ...] ) 計算數組的差集, 即是說跟第一個數組中不同的值
array array_diff_assoc ( array array1, array array2 [, array ...] ) 帶索引檢查數組中的差集
array array_diff_key ( array array1, array array2 [, array ...] ) 使用鍵名比較數組中的差集
其它比較有用的數組函數
數組函數還有好多沒有列出來…再上幾個比較有用也比較常的,其它的就參考手冊啦…手冊裡很清楚
mixed array_rand ( array input [, int num_req] ) 數組中隨機取出一個或多個鍵,num指定個數
bool shuffle ( array &array ) 將數組打亂
number array_sum ( array array ) 計算數組中所有值的總和,關聯數組忽略
array array_chunk ( array input, int size [, bool preserve_keys] ) 將一個數組分割成幾個