跟我學習php數組常用函數-上篇

來源:互聯網
上載者:User

對於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變數

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.