1. 程式人生 > >PHP陣列修改函式

PHP陣列修改函式

array_change_key_case :將陣列中的所有鍵名修改為全大寫或小寫。接受兩個引數,第一個為要修改的陣列,第二個為可選的大小寫轉換標識,表示將鍵名修改為大寫還是小寫,預設為CASE_LOWER。如果傳入的不是陣列會返回false,併產生一個警告。

array_fill_keys:使用指定的鍵和值填充陣列,接受兩個引數,第一個為指定的鍵陣列,陣列的值為鍵名,第二個引數為用於填充陣列的值。

array_fill:用給定的值填充陣列,接受三個引數,第一個為正整數,標識填充的起始索引值,如果是負數,則返回的陣列第一個索引為該負數,後面的索引從0開始,第二個為整數,表示填充的數量,必須大於等於0,否則會產生警告。第三個引數為用於填充陣列的值。

array_flip:交換陣列中的鍵和值,陣列中的值如果不是作為合法的鍵名,將會產生警告,並且有問題的鍵值對不會出現在結果中。如果同一個值出現多次,則最後一次出現的鍵名會作為交換後的值,之前的會被丟棄。如果交換失敗返回null。

array_pad:以指定長度將一個值填充進陣列。接受三個引數,第一個為要填充的陣列,第二個為填充後的陣列大小,第三個為用於填充的值。如果指定的陣列大小為整數,則從右側填充,如果為負數則從左側填充,如果小於原陣列的大小則不進行填充,最多可一次填充1048576個值。返回的是第一個陣列的拷貝。

array_replace:使用傳遞的陣列替換第一個陣列的元素,接受任意數量的陣列,如果一個鍵存在於第一個陣列同時也存在第二個陣列中,則將第一個陣列的值替換為第二個陣列中的值。如果第一個陣列中不存在,但第二個陣列中存在,則會在第一個陣列中建立這個元素,如果只存在於第一個陣列中則保持不變,如果傳遞了多個數組,則會按順序依次處理,後面的陣列覆蓋前面相同鍵的值。如果發生錯誤,返回null,否則返回替換後的陣列。array_replace是非遞迴的,不會判斷第一個陣列中的值的型別而直接進行覆蓋。

array_replace_recursive:與array_replace唯一的區別是,array_replace_recursive是遞迴的,即會判斷第一個陣列中的值的型別,如果是陣列,會遞迴的替換這個陣列中的值。

array_splice:去掉陣列中的某一部分並用其它值取代,接受四個引數,第一個為要進行操作的陣列引用,第二個為起始位置,第三個為可選的長度,預設為陣列的長度。第四個為可選的替代單元,預設為空陣列。進行操作的陣列中的鍵名不會保留。如果起始位置為正數則從前往後計算,從0開始,如果為負數則從後往前計算,從-1開始。如果不傳入長度,則預設為從起始位置到陣列結尾的所有單元,如果傳入長度為正數,則從起始位置移除指定長度的單元,如果為負數則從起始位置向前移除指定長度的單元,如果為0則不移除單元。如果替代單元為陣列,則用陣列中單元替換移除的單元,如果不移除任何單元,則會在指定的起始位置插入替代單元。如果替代單元只有一個單元,則不需要加上array(),除非該單元本身是一個數組、物件或者null,返回值為包含被刪除單元的陣列。

array_unique:移除陣列中重複的值,接受兩個引數,第一個為要進行去重的陣列,第二個為排序順序標識,PHP5.2.9預設為SORT_REGULAR,其他版本預設為SORT_STRING。先對陣列中的元素值進行排序,然後每個值只保留遇到的第一個鍵名,忽略後面的鍵名,並不是排序前同一個值的第一個出現的鍵名一定會被保留。返回去重後的陣列,保留鍵名。

array_unshift:在陣列開頭插入一個或多個單元,單元是做為整體插入的,傳入單元將保持同樣的順序,插入後,所有的數值鍵名將從零開始重新計算,字串鍵名保持不變。返回插入後的陣列單元數量。

array_shift:將陣列開頭的單元移出陣列,將所有的單元向前移動一位,所有的數字鍵名從零開始計數,文字鍵名不變,陣列長度減1。使用此函式後會重置陣列內部的指標。如果傳入非陣列的值則會產生警告。傳入空陣列或非法值則返回null。

array_pop:彈出並返回陣列最後一個單元,陣列長度減1,該函式只接受陣列的引用,不能直接傳入陣列。如果是空陣列,則返回null。如果傳入非陣列的值則會產生警告。使用此函式後會重置陣列內部的指標。

array_push:將一個或多個單元壓入陣列末尾,並增加相應的長度,該函式只接受陣列的引用,不能直接傳入陣列。如果傳入非陣列的值則會產生警告。使用此函式後不會重置陣列內部的指標。返回值為插入後陣列的單元總數。

<?php
$ar1=array("a"=>"a","b"=>"b","c"=>"c","d"=>"d","e"=>"e","f"=>"f");
$ar2=array("a","b","d","f","g","h");
$ar3=array("a","c","g");
$ar4=array("a"=>"a","b"=>array("a"=>"a","b"=>"b","c"=>"c"),"c"=>"c");
$ar5=array("a"=>"1","b"=>array("c"=>"c","d"=>"d","b"=>"b","e"=>"e"),"c"=>array("c","b","a"));
$ar6=array(1,2,3,4,5,6);
$ar7=array("a","b","d","f","g","h","a","c","g","e");
$ar8=array(1=>"a","02"=>"b",3=>"e",4=>"04");
$ar9=array();

var_dump(array_change_key_case($ar1,CASE_UPPER));
var_dump(array_fill_keys($ar6,"a"));
var_dump(array_fill_keys($ar6,$ar3));
var_dump(array_fill(-2,3,"a"));
var_dump(array_fill(3,0,"a"));
var_dump(array_flip($ar2));
var_dump(array_pad($ar2,"-10","z"));
var_dump(array_replace($ar4,$ar5));
var_dump(array_replace_recursive($ar4,$ar5));
var_dump(array_splice($ar3,1,1,array("x","y","z")));
var_dump($ar3);
var_dump(array_unique($ar7));
var_dump(array_unshift($ar8,"e","f"));
var_dump($ar8);
next($ar8);
var_dump(key($ar8));
var_dump(array_shift($ar8));
var_dump($ar8);
var_dump(key($ar8));
var_dump(array_shift($ar9));
next($ar8);
var_dump(key($ar8));
var_dump(array_pop($ar1));
var_dump(key($ar8));
var_dump($ar8);
var_dump(array_pop($ar9));
next($ar8);
var_dump(key($ar8));
$ar1[]="e";
var_dump($ar8);
var_dump(key($ar8));
var_dump(array_push($ar8,"f","g"));
var_dump(key($ar8));

?>