對於php的初學者,也許會對它大量的函數不清楚該學習哪些。我在這列舉了一些大家實際當中可能與使用到的,供您參考
1) array_map ( callable $callback , array $arr1 [, array $... ] )
callback(回呼函數),接受一個函數函數作用:將arr1的參數順序的傳遞給前面的回呼函數
/*例1*/ 1 [1] => 8 [2] => 27 [3] => 64 [4] => 125 )**/ ?>
Array ( [0] => 1 [1] => one [2] => uno ) [1] => Array ( [0] => 2 [1] => two [2] => dos ) [2] => Array ( [0] => 3 [1] => three [2] => tres ) [3] => Array ( [0] => 4 [1] => four [2] => cuatro ) [4] => Array ( [0] => 5 [1] => five [2] => cinco ))*/ ?>
2) range ( mixed $start , mixed $limit [, number $step = 1 ] )
step表示間隔值,不寫預設為1
/*例1,產生一組數字*/$nums = range(1, 5);print_r($nums);/*輸出:Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )*/$nums = range(1, 5, 2);print_r($nums);/*輸出:Array ( [0] => 1 [1] => 3 [2] => 5 )*/
/*例2,產生一組字母數組*/$array = range('a','f');print_r($array);/*輸出:Array ( [0] => a [1] => b [2] => c [3] => d [4] => e [5] => f )*/$array = array('a', 'f', 2);print_r($array);/*輸出:print_r($array);/*輸出:Array ( [0] => a [1] => c [2] => e )*/
3) array_merge ( array $array1 [, array $... ] )
array_merge() 將一個或多個數組的單元合并起來,一個數組中的值附加在前一個數組的後面。返回作為結果的數組。
如果輸入的數組中有相同的字串鍵名,則該鍵名後面的值將覆蓋前一個值。然而,如果數組包含數字鍵名,後面的值將不會覆蓋原來的值,而是附加到後面。
如果只給了一個數組並且該數組是數字索引的,則鍵名會以連續方式重新索引。
/*解釋:如果只給了一個數組並且該數組是數字索引的,則鍵名會以連續方式重新索引。*/$array1 = array(1, 2, 3, 4, 5);$array2 = array(1, 2, 8, 9);$array3 = array_merge($array1, $array2);print_r($array3);/*輸出:Array( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 1 [6] => 2 [7] => 8 [8] => 9)*/
4) array_merge_recursive ( array $array1 [, array $... ] ) 遞迴地合并一個或多個數組
如果輸入的數組中有相同的字串鍵名,則這些值會被合并到一個數組中去,這將遞迴下去,因此如果一個值本身是一個數組,本函數將按照相應的條目把它合并為另一個數組。然而,如果數組具有相同的數組鍵名,後一個值將不會覆蓋原來的值,而是附加到後面。
會根據鍵名相同一層一層的將值進行合并
/*例1*/$ar1 = array("color" => array("favorite" => "red"), 5);$ar2 = array(10, "color" => array("favorite" => array('a'=>"red"), "blue"));$result = array_merge_recursive($ar1, $ar2);print_r($result);/*輸出:Array( [color] => Array ( [favorite] => Array ( [0] => red [a] => red 重點 ) [0] => blue ) [0] => 5 [1] => 10)*/
/*例2*/$ar1 = array("color" => array("favorite" => "red"), 5);$ar2 = array(10, "color" => array("favorite" =>"red", "blue"));$result = array_merge_recursive($ar1, $ar2);print_r($result);/*輸出:Array( [color] => Array ( [favorite] => Array ( [0] => red [1] => red 重點 ) [0] => blue ) [0] => 5 [1] => 10)*/
5) array_pad ( array $input , int $pad_size , mixed $pad_value ) 給數組增加值到指定的長度,原數組不會改變
6) array_pop ( array &$array ) 移出最後一個元素,原數組會改變
array_pop() 彈出並返回 array 數組的最後一個單元,並將數組 array 的長度減一。 如果 array 為空白(或者不是數組)將返回 NULL 。 此外如果被調用不是一個數則會產生一個 Warning。
/*輸出Array( [0] => orange [1] => banana [2] => apple)*/
7) array_shift() 將數組開頭的單元移出數組,原數組會改變, 使用此函數後會重設(reset())array 指標。
array_shift() 將 array 的第一個單元移出並作為結果返回,將 array 的長度減一併將所有其它單元向前移動一位。所有的數字鍵名將改為從零開始計數,文字鍵名將不變。 如果 array 為空白(或者不是數組)將返回 NULL
8) int array_push ( array &$array , mixed $var [, mixed $... ] )
- array_push() 將 array 當成一個棧,並將傳入的變數壓入 array 的末尾。array 的長度將根據入棧變數的數目增加
- 返回處理後數組的元素個數
9) reset ( array &$array )將數組的內部指標指向第一個單元
- reset() 將 array 的內部指標倒回到第一個單元並返回第一個數組單元的值。
- 數組為空白返回false
10) end ( array &$array )
參數array,該數組是通過引用(&)傳遞的,因為它會被這個函數修改。 這意味著你必須傳入一個真正的變數,而不是函數返回的數組,因為只有真正的變數才能以引用傳遞。
- end() 將 array 的內部指標移動到最後一個單元並返回其值。
- 數組為空白返回false
對於引用傳遞,如果不將一個函數的傳回值賦給一個變數的話,在記憶體中是不會真正的開闢以個單獨的空間記憶體的。而引用傳遞的參數則必須需要一個有真實存在的記憶體的,因此,$array = back(),這樣會開闢一片記憶體給$array變數