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