php常見的數組

數組函數:

一.排序類:【1.無返回值,傳值引用,就直接對原數組進行了修改】

按V:sort,rsort,asort,arsort,

按K:ksort,krsort

按字母:natsort();//區分大小寫的排序

natcasesort();//不區分大小寫的排序,

當遇到字符完全一樣,按照數字排 eg: FILE1,FILE2, 這兩個字符相同,再按照數字1<2排,所以結果 FILE1,FILE2

回調:usort($arr,"strnatcmp")//回調類的排序,把$arr 數組裏的每一個元素丟到strnatcmp()[非自然數排序]處理【返回新的排序數組】

規律:

沒有"k",排序按照【value】排序,排序有"a"的表示要保留KEY,有"r"的倒序排

有“k”,排序按照【KEY】排序,有"r"的倒序排

有"u"的,表示要丟到回調函數中處理的

 

二.鍵值操作類:【都有返回值,沒有在原來參數上修改】

1.array_values($arr);//獲取$arr 中的值重排,去掉下標【返回值新索引數組】

2.array_keys($arr[,"str",true])//獲取$arr 中所有字符是"str"的下標,形成索引數組,true 表示區分大小寫【返回新索引數組】

3.array_search("is",$arr[,true]) //返回值"is"在$arr 中的key,找不到返回fales,true

表示嚴格按照類型(8,"8")【返回第一個匹配值】

4.in_array("str",$arr);//判斷"str"在$arr 中是否存在,【返回BOOL】

5.is_array($arr);//判斷是否是數組【返回BOOL】

6.array_key_exists($key,$arr); //查詢$arr 中是否有$key,【返回BOOL】

7.array_flip($arr);// 交換鍵值,如有重複,後來居上,【返回新數組】

8.array_reverse($arr,[true|false]);//數組順序反轉,param2 是否保留原來鍵值【返回新關聯/索引數組】

9.array_column(array(),'name'[,name_two]) — 返回數組中指定的name 列[可選參數,如果有返回name=>name_two 的形式]【返回一維數組】

 

三.元素個數和唯一性

1.array_unique($arr);//去掉$arr 中的重複值,重複的保留第一個值,【返回數組,鍵值保留】

2.array_count_values($arr)//統計數組值出現的次數,【返回數組,KEY 爲原來數組的值,VALUE 爲統計的次數】

3.count($arr[,1])/sizeof();//統計$arr 的元素個數,參數"1"表示統計多維數組開啓,默認0爲關閉【返回統計個數】

 

四.回調函數

1.array_filter($arr,"function");//把$arr 放到函數function 中處理,【返回判斷爲TRUE 的數據組成新數組,鍵值保留】

2.array_walk($arr,"function"[,"data"]);//把$arr 放到function(&$v,$k,$data)中處理【返回值爲bool】

3.array_map("function",$arr,$arr2,$arr3,....);//把所有數組返回到回調函數統一處理,【返回數組】

4.array_reduce($arr,myfunction[,initial]):把一維數組$arr 中的值依次傳到自定義函數

myfunction($v1,$v2)的v2 上,v1 爲累加值類似於( .= ),[如果有initial,先把其當v1 傳進去]【返回字符串】

 

五.拆分,合併,分解,接合數組

1.array_slice($arr,1[,2]);//在$arr 中,從第二個開始取[,返回倆個值]【返回新數組(對原數組無影響),鍵值保留】

2.array_splice($arr,1[,2,"aaa","bb"]);//刪除或替換,從$arr 第二個開始取,刪除或替換2 個值【返回值爲新數組,拆掉原數組】

3.array_combine($arr1,$arr2);//數組$arr1 爲KEY,$arr2 爲VALUES 結合形成新索引數組【返回索引數組】

4.array_merge($arr1,$arr2,$arr3...);//數組進行合併,保留鍵值,有重複,後來者居上【返回新數組】
array_merge 發現有key 值相同的,取後者;

$arr1+$arr2 發現有key 值相同的,取前者,第二個重複的值丟棄

5.array_intersect($arr1,$arr2)//返回兩個數組的交集,鍵值不變、

6.array_diff($arr1,$arr2)//返回兩數組的差集,返回的值爲第一個數組的值,鍵值不變

7.array_chunk($arr,2)//分割數組,把$arr 按照【2 個爲一組】均等分割【返回一個二維數組】

 

六.數組的數據結構【2.無返回值,傳值引用,就直接對原數組進行了修改

1.array_shift($arr)//從開頭,刪除數組第一個元素

2.array_unshift($arr,"one","two")//從開頭,添加元素

3.array_pop($arr)//從結尾,刪除數組最後一個元素

4.array_push($arr,"aaa");//從結尾,添加元素

5.current($arr)//返回數組中的當前單元 比如是關聯數組是不知道下標,可以輸出當前數組的辦法解決

6.key($arr)//返回當前指針指向元素的鍵值

7.next($arr)//當前指針下移

8.pre($arr)//當前指針上移

9.end($arr)//指針指到最後

10.reset($arr)//指針迴歸到開頭

11.unset($arr)//銷燬此數組

 

七.其他

1.array_rand($arr,2);//隨機返回兩個$arr 數組當中的key【返回值爲值或者數組】

2.shuffle($arr)//隨機的重組$arr,順序變亂【返回新數組,保留鍵值】

3.array_sum($arr);//返回$arr 的value 的和【返回一個值】

4.range(0,10,2,)//快速創建0,10 的數組,間隔爲2,所以有5 個值【返回新索引數組】

5.http_build_query($arr)//把關聯數組轉換成一個經過urlencode 加密的URL     eg:array["a"=>2];=>URL:a=2&

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章