數(shù)組函數(shù)

PHP數(shù)組函數(shù),摘錄于PHP手冊

函數(shù)名稱 解釋
array_change_key_case 將數(shù)組中的所有鍵名修改為全大寫或小寫
array_chunk 將一個數(shù)組分割成多個
array_column 返回數(shù)組中指定的一列
array_combine 創(chuàng)建一個數(shù)組,用一個數(shù)組的值作為其鍵名,另一個數(shù)組的值作為其值
array_count_values 統(tǒng)計數(shù)組中所有的值
array_fill_keys 使用指定的鍵和值填充數(shù)組
array_fill 用給定的值填充數(shù)組
array_filter 用回調(diào)函數(shù)過濾數(shù)組中的單元
array_flip 交換數(shù)組中的鍵和值
array_key_exists 檢查數(shù)組里是否有指定的鍵名或索引
array_keys 返回數(shù)組中部分的或所有的鍵名
array_map 為數(shù)組的每個元素應(yīng)用回調(diào)函數(shù)
array_merge 合并一個或多個數(shù)組
array_merge_recursive 遞歸地合并一個或多個數(shù)組
array_multisort 對多個數(shù)組或多維數(shù)組進(jìn)行排序
array_pad 以指定長度將一個值填充進(jìn)數(shù)組
array_pop 彈出數(shù)組最后一個單元(出棧)
array_product 計算數(shù)組中所有值的乘積
array_push 將一個或多個單元壓入數(shù)組的末尾(入棧)
array_rand 從數(shù)組中隨機(jī)取出一個或多個單元
array_reduce 用回調(diào)函數(shù)迭代地將數(shù)組簡化為單一的值
array_replace 使用傳遞的數(shù)組替換第一個數(shù)組的元素
array_replace_recursive 使用傳遞的數(shù)組遞歸替換第一個數(shù)組的元素
array_reverse 返回單元順序相反的數(shù)組
array_search 在數(shù)組中搜索給定的值,如果成功則返回首個相應(yīng)的鍵名
array_shift 將數(shù)組開頭的單元移出數(shù)組
array_slice 從數(shù)組中取出一段
array_splice 去掉數(shù)組中的某一部分并用其它值取代
array_sum 對數(shù)組中所有值求和
array_udiff_assoc 帶索引檢查計算數(shù)組的差集,用回調(diào)函數(shù)比較數(shù)據(jù)
array_udiff_uassoc 帶索引檢查計算數(shù)組的差集,用回調(diào)函數(shù)比較數(shù)據(jù)和索引
array_udiff 用回調(diào)函數(shù)比較數(shù)據(jù)來計算數(shù)組的差集
array_unique 移除數(shù)組中重復(fù)的值
array_unshift 在數(shù)組開頭插入一個或多個單元
array_values 返回數(shù)組中所有的值
array_walk 使用用戶自定義函數(shù)對數(shù)組中的每個元素做回調(diào)處理
array_walk_recursive 對數(shù)組中的每個成員遞歸地應(yīng)用用戶函數(shù)
array 新建一個數(shù)組
arsort 對數(shù)組進(jìn)行逆向排序并保持索引關(guān)系
asort 對數(shù)組進(jìn)行排序并保持索引關(guān)系
compact 建立一個數(shù)組,包括變量名和它們的值
count 計算數(shù)組中的單元數(shù)目,或?qū)ο笾械膶傩詡€數(shù)
current 返回數(shù)組中的當(dāng)前單元
each 返回數(shù)組中當(dāng)前的鍵/值對并將數(shù)組指針向前移動一步
end 將數(shù)組的內(nèi)部指針指向最后一個單元
extract 從數(shù)組中將變量導(dǎo)入到當(dāng)前的符號表
in_array 檢查數(shù)組中是否存在某個值
key_exists 別名 array_key_exists
key 從關(guān)聯(lián)數(shù)組中取得鍵名
krsort 對數(shù)組按照鍵名逆向排序
ksort 對數(shù)組按照鍵名排序
list 把數(shù)組中的值賦給一組變量
next 將數(shù)組中的內(nèi)部指針向前移動一位
pos current 的別名
prev 將數(shù)組的內(nèi)部指針倒回一位
range 根據(jù)范圍創(chuàng)建數(shù)組,包含指定的元素
reset 將數(shù)組的內(nèi)部指針指向第一個單元
rsort 對數(shù)組逆向排序
shuffle 打亂數(shù)組
sizeof count 的別名
sort 對數(shù)組排序
uasort 使用用戶自定義的比較函數(shù)對數(shù)組中的值進(jìn)行排序并保持索引關(guān)聯(lián)
uksort 使用用戶自定義的比較函數(shù)對數(shù)組中的鍵名進(jìn)行排序
usort 使用用戶自定義的比較函數(shù)對數(shù)組中的值進(jìn)行排序

1、array_change_key_case

(PHP 4 >= 4.2.0, PHP 5, PHP 7)
array_change_key_case — 將數(shù)組中的所有鍵名修改為全大寫或小寫

  • 說明
    array array_change_key_case ( array $array [, int $case = CASE_LOWER ] )
    array_change_key_case() 將 array 數(shù)組中的所有鍵名改為全小寫或大寫。本函數(shù)不改變數(shù)字索引。
  • 參數(shù)
    array:需要操作的數(shù)組。
    case:可以在這里用兩個常量,CASE_UPPER 或 CASE_LOWER(默認(rèn)值)。
  • 返回值
    返回一個鍵全是小寫或者全是大寫的數(shù)組;如果輸入值(array)不是一個數(shù)組,那么返回FALSE
  • 錯誤/異常
    如果輸入值(array)不是一個數(shù)組,就會拋出一個錯誤警告(E_WARNING)
  • 范例
<?php
    $input_array = array("FirSt" => 1, "SecOnd" => 4);
    print_r(array_change_key_case($input_array, CASE_UPPER));
?>  
以上例程會輸出:
Array
(
    [FIRST] => 1
    [SECOND] => 4
)

2、array_chunk

(PHP 4 >= 4.2.0, PHP 5, PHP 7)
array_chunk — 將一個數(shù)組分割成多個

  • 說明
    array array_chunk ( array $array , int $size [, bool $preserve_keys = false ] )
    將一個數(shù)組分割成多個數(shù)組,其中每個數(shù)組的單元數(shù)目由 size 決定。最后一個數(shù)組的單元數(shù)目可能會少于 size 個。
  • 參數(shù)
    array:需要操作的數(shù)組
    size:每個數(shù)組的單元數(shù)目
    preserve_keys:設(shè)為 TRUE,可以使 PHP 保留輸入數(shù)組中原來的鍵名。如果你指定了 FALSE,那每個結(jié)果數(shù)組將用從零開始的新數(shù)字索引。默認(rèn)值是 FALSE。
  • 返回值
    得到的數(shù)組是一個多維數(shù)組中的單元,其索引從零開始,每一維包含了 size 個元素。
  • 錯誤/異常
    如果 size 小于 1,會拋出一個 E_WARNING 錯誤并返回 NULL。
  • 范例
<?php
    $input_array = array('a', 'b', 'c', 'd', 'e');
    print_r(array_chunk($input_array, 2));
    print_r(array_chunk($input_array, 2, true));
?>
以上例程會輸出:
Array
(
    [0] => Array
        (
            [0] => a
            [1] => b
        )

    [1] => Array
        (
            [0] => c
            [1] => d
        )

    [2] => Array
        (
            [0] => e
        )

)
Array
(
    [0] => Array
        (
            [0] => a
            [1] => b
        )

    [1] => Array
        (
            [2] => c
            [3] => d
        )

    [2] => Array
        (
            [4] => e
        )

)
  • 參見
    array_slice() - 從數(shù)組中取出一段

3、array_column

(PHP 5 >= 5.5.0, PHP 7)
array_column — 返回數(shù)組中指定的一列

  • 說明
    array array_column ( array $input , mixed $column_key [, mixed $index_key = null ] )
    array_column() 返回input數(shù)組中鍵值為column_key的列, 如果指定了可選參數(shù)index_key,那么input數(shù)組中的這一列的值將作為返回數(shù)組中對應(yīng)值的鍵。
  • 參數(shù)
    input
    需要取出數(shù)組列的多維數(shù)組。 如果提供的是包含一組對象的數(shù)組,只有 public 屬性會被直接取出。 為了也能取出 private 和 protected 屬性,類必須實現(xiàn) __get() 和 __isset() 魔術(shù)方法。
    column_key
    需要返回值的列,它可以是索引數(shù)組的列索引,或者是關(guān)聯(lián)數(shù)組的列的鍵,也可以是屬性名。 也可以是NULL,此時將返回整個數(shù)組(配合index_key參數(shù)來重置數(shù)組鍵的時候,非常管用)
    index_key
    作為返回數(shù)組的索引/鍵的列,它可以是該列的整數(shù)索引,或者字符串鍵值。
  • 返回值
    從多維數(shù)組中返回單列數(shù)組。
  • 范例 從結(jié)果集中取出first names列
<?php
    $records = array(
        array(
            'id' => 2135,
            'first_name' => 'John',
            'last_name' => 'Doe',
        ),
        array(
            'id' => 3245,
            'first_name' => 'Sally',
            'last_name' => 'Smith',
        ),
        array(
            'id' => 5342,
            'first_name' => 'Jane',
            'last_name' => 'Jones',
        ),
        array(
            'id' => 5623,
            'first_name' => 'Peter',
            'last_name' => 'Doe',
        )
    );

    $first_names = array_column($records, 'first_name');
    print_r($first_names);
?>

以上例程會輸出:

Array
(
    [0] => John
    [1] => Sally
    [2] => Jane
    [3] => Peter
)

4、array_combine

(PHP 5, PHP 7)
array_combine — 創(chuàng)建一個數(shù)組,用一個數(shù)組的值作為其鍵名,另一個數(shù)組的值作為其值

  • 說明
    array array_combine ( array $keys , array $values )
    返回一個 array,用來自 keys 數(shù)組的值作為鍵名,來自 values 數(shù)組的值作為相應(yīng)的值。

  • 參數(shù)
    keys
    將被作為新數(shù)組的鍵。非法的值將會被轉(zhuǎn)換為字符串類型(string)。
    values
    將被作為 Array 的值。

  • 返回值
    返回合并的 array,如果兩個數(shù)組的單元數(shù)不同則返回 FALSE。

  • 錯誤/異常
    如果作為keys的數(shù)組和作為values的數(shù)組的元素個數(shù)不一樣,將會拋出一個警告錯誤(E_WARNING)。

  • 范例 一個 array_combine() 簡單的例子

<?php
    $a = array('green', 'red', 'yellow');
    $b = array('avocado', 'apple', 'banana');
    $c = array_combine($a, $b);
    print_r($c);
?>  

以上例程會輸出:
Array
(
    [green]  => avocado
    [red]    => apple
    [yellow] => banana
)

5、array_count_values

(PHP 4, PHP 5, PHP 7)
array_count_values — 統(tǒng)計數(shù)組中所有的值

  • 說明
    array array_count_values ( array $array )
    array_count_values() 返回一個數(shù)組: 數(shù)組的鍵是 array 里單元的值; 數(shù)組的值是 array 單元的值出現(xiàn)的次數(shù)。
  • 參數(shù)
    input
    統(tǒng)計這個數(shù)組的值
  • 返回值
    返回一個關(guān)聯(lián)數(shù)組,用 array 數(shù)組中的值作為鍵名,該值在數(shù)組中出現(xiàn)的次數(shù)作為值。
  • 錯誤/異常
    對數(shù)組里面的每個不是 string 和 integer 類型的元素拋出一個警告錯誤(E_WARNING)。
  • 范例
<?php
    $array = array(1, "hello", 1, "world", "hello");
    print_r(array_count_values($array));
?>
以上例程會輸出:
Array
(
    [1] => 2
    [hello] => 2
    [world] => 1
)

6、array_fill_keys

(PHP 5 >= 5.2.0, PHP 7)
array_fill_keys — 使用指定的鍵和值填充數(shù)組

  • 說明
    array array_fill_keys ( array $keys , mixed $value )
    使用 value 參數(shù)的值作為值,使用 keys 數(shù)組的值作為鍵來填充一個數(shù)組。
  • 參數(shù)
    keys:使用該數(shù)組的值作為鍵。非法值將被轉(zhuǎn)換為字符串。
    value:填充使用的值。
  • 返回值
    返回填充后的數(shù)組。
  • 范例
<?php
    $keys = array('foo', 5, 10, 'bar');
    $a = array_fill_keys($keys, 'banana');
    print_r($a);
?>  
以上例程會輸出:
Array
(
    [foo] => banana
    [5] => banana
    [10] => banana
    [bar] => banana
)

7、array_fill

(PHP 4 >= 4.2.0, PHP 5, PHP 7)
array_fill — 用給定的值填充數(shù)組

  • 說明
    array array_fill ( int $start_index , int $num , mixed $value )
    array_fill() 用 value 參數(shù)的值將一個數(shù)組填充 num 個條目,鍵名由 start_index 參數(shù)指定的開始。
  • 參數(shù)
    start_index:返回的數(shù)組的第一個索引值。 如果 start_index 是負(fù)數(shù), 那么返回的數(shù)組的第一個索引將會是 start_index ,而后面索引則從0開始。 (參見 例子)。
    num:插入元素的數(shù)量。 必須大于或等于 0。
    value:用來填充的值。
  • 返回值
    返回填充后的數(shù)組。
  • 錯誤/異常
    如果 num 小于零,將會拋出 E_WARNING。
  • 說明
    5.6.0 num 現(xiàn)在可以是零。 之前 num 必須大于零。
  • 范例
<?php
    $a = array_fill(5, 6, 'banana');
    $b = array_fill(-2, 4, 'pear');
    print_r($a);
    print_r($b);
?>  
以上例程會輸出:
Array
(
    [5]  => banana
    [6]  => banana
    [7]  => banana
    [8]  => banana
    [9]  => banana
    [10] => banana
)
Array
(
    [-2] => pear
    [0] => pear
    [1] => pear
    [2] => pear
)

8、array_filter

(PHP 4 >= 4.0.6, PHP 5, PHP 7)
array_filter — 用回調(diào)函數(shù)過濾數(shù)組中的單元

  • 說明
    array array_filter ( array $array [, callable $callback [, int $flag = 0 ]] )
    依次將 array 數(shù)組中的每個值傳遞到 callback 函數(shù)。如果 callback 函數(shù)返回 true,則 array 數(shù)組的當(dāng)前值會被包含在返回的結(jié)果數(shù)組中。數(shù)組的鍵名保留不變。
  • 參數(shù)
    array:要循環(huán)的數(shù)組
    callback:使用的回調(diào)函數(shù),如果沒有提供 callback 函數(shù), 將刪除 array 中所有等值為 FALSE 的條目。更多信息見轉(zhuǎn)換為布爾值。
    flag:決定callback接收的參數(shù)形式:

    ARRAY_FILTER_USE_KEY - callback接受鍵名作為的唯一參數(shù)
    ARRAY_FILTER_USE_BOTH - callback同時接受鍵名和鍵值

  • 返回值
    返回過濾后的數(shù)組。
  • 范例
<?php
    function odd($var)
    {
        // returns whether the input integer is odd
        return($var & 1);
    }
    function even($var)
    {
        // returns whether the input integer is even
        return(!($var & 1));
    }
    $array1 = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
    $array2 = array(6, 7, 8, 9, 10, 11, 12);
    echo "Odd :\n";
    print_r(array_filter($array1, "odd"));
    echo "Even:\n";
    print_r(array_filter($array2, "even"));
?>

以上例程會輸出:
Odd :
Array
(
    [a] => 1
    [c] => 3
    [e] => 5
)
Even:
Array
(
    [0] => 6
    [2] => 8
    [4] => 10
    [6] => 12
)

9、array_flip

(PHP 4, PHP 5, PHP 7)
array_flip — 交換數(shù)組中的鍵和值

  • 說明
    array array_flip ( array $array )
    array_flip() 返回一個反轉(zhuǎn)后的 array,例如 array 中的鍵名變成了值,而 array 中的值成了鍵名。
    注意 array 中的值需要能夠作為合法的鍵名(例如需要是 integer 或者 string)。如果類型不對,將出現(xiàn)一個警告,并且有問題的鍵/值對將不會出現(xiàn)在結(jié)果里。
    如果同一個值出現(xiàn)多次,則最后一個鍵名將作為它的值,其它鍵會被丟棄。
  • 參數(shù)
    array:要交換鍵/值對的數(shù)組。
  • 返回值
    成功時返回交換后的數(shù)組,如果失敗返回 NULL。
  • 范例
<?php
    $input = array("oranges", "apples", "pears");
    $flipped = array_flip($input);
    print_r($flipped);
?>

以上例程會輸出:
Array
(
    [oranges] => 0
    [apples] => 1
    [pears] => 2
)

10、array_key_exists

(PHP 4 >= 4.0.7, PHP 5, PHP 7)
array_key_exists — 檢查數(shù)組里是否有指定的鍵名或索引

  • 說明
    bool array_key_exists ( mixed $key , array $array )
    數(shù)組里有鍵 key 時,array_key_exists() 返回 TRUE。 key 可以是任何能作為數(shù)組索引的值。
  • 參數(shù)
    key:要檢查的鍵。
    array:一個數(shù)組,包含待檢查的鍵。
  • 返回值
    成功時返回 TRUE, 或者在失敗時返回 FALSE。
  • Note:
    array_key_exists() 僅僅搜索第一維的鍵。 多維數(shù)組里嵌套的鍵不會被搜索到。
  • 范例
<?php
    $search_array = array('first' => 1, 'second' => 4);
    if (array_key_exists('first', $search_array)) {
        echo "The 'first' element is in the array";
    }
?>

11、array_keys

(PHP 4, PHP 5, PHP 7)
array_keys — 返回數(shù)組中部分的或所有的鍵名

  • 說明
    array array_keys ( array $array [, mixed $search_value = null [, bool $strict = false ]] )
    array_keys() 返回 input 數(shù)組中的數(shù)字或者字符串的鍵名。
    如果指定了可選參數(shù) search_value,則只返回該值的鍵名。否則 input 數(shù)組中的所有鍵名都會被返回。
  • 參數(shù)
    input:一個數(shù)組,包含了要返回的鍵。
    search_value:如果指定了這個參數(shù),只有包含這些值的鍵才會返回。
    strict:判斷在搜索的時候是否該使用嚴(yán)格的比較(===)。
  • 返回值
    返回 input 里的所有鍵。
  • 范例
<?php
    $array = [0 => 100, "color" => "red"];
    print_r(array_keys($array));

    $array = ["blue", "red", "green", "blue", "blue"];
    print_r(array_keys($array, "blue"));

    $array = [
        "color" => ["blue", "red", "green"],
        "size"  => ["small", "medium", "large"]
    ];
    print_r(array_keys($array));
?>
以上例程會輸出:
Array
(
    [0] => 0
    [1] => color
)
Array
(
    [0] => 0
    [1] => 3
    [2] => 4
)
Array
(
    [0] => color
    [1] => size
)

12、array_map

(PHP 4 >= 4.0.6, PHP 5, PHP 7)
array_map — 為數(shù)組的每個元素應(yīng)用回調(diào)函數(shù)

  • 說明
    array array_map ( callable $callback , array $array1 [, array $... ] )
    array_map():返回數(shù)組,是為 array1 每個元素應(yīng)用 callback函數(shù)之后的數(shù)組。 callback 函數(shù)形參的數(shù)量和傳給 array_map() 數(shù)組數(shù)量,兩者必須一樣。
  • 參數(shù)
    callback:回調(diào)函數(shù),應(yīng)用到每個數(shù)組里的每個元素。
    array1:數(shù)組,遍歷運行 callback 函數(shù)。
    ...:數(shù)組列表,每個都遍歷運行 callback 函數(shù)。
  • 返回值
    返回數(shù)組,包含 callback 函數(shù)處理之后 array1 的所有元素。
  • 范例
<?php
    function cube($n) {
        return($n * $n * $n);
    }

    $a = array(1, 2, 3, 4, 5);
    $b = array_map("cube", $a);
    print_r($b);
?> 
這使得 $b 成為:
Array
(
    [0] => 1
    [1] => 8
    [2] => 27
    [3] => 64
    [4] => 125
)

13、array_merge

(PHP 4, PHP 5, PHP 7)
array_merge — 合并一個或多個數(shù)組

  • 說明
    array array_merge ( array $array1 [, array $... ] )
    array_merge() 將一個或多個數(shù)組的單元合并起來,一個數(shù)組中的值附加在前一個數(shù)組的后面。返回作為結(jié)果的數(shù)組。
    如果輸入的數(shù)組中有相同的字符串鍵名,則該鍵名后面的值將覆蓋前一個值。然而,如果數(shù)組包含數(shù)字鍵名,后面的值將不會覆蓋原來的值,而是附加到后面。
    如果只給了一個數(shù)組并且該數(shù)組是數(shù)字索引的,則鍵名會以連續(xù)方式重新索引。
  • 參數(shù)
    array1:要合并的第一個數(shù)組。
    ...:要合并的數(shù)組列表。
  • 返回值
    返回結(jié)果數(shù)組。
  • 范例
<?php
    $array1 = ["color" => "red", 2, 4];
    $array2 = ["a", "b", "color" => "green", "shape" => "trapezoid", 4];
    $result = array_merge($array1, $array2);
    print_r($result);
?>
以上例程會輸出:
Array
(
    [color] => green
    [0] => 2
    [1] => 4
    [2] => a
    [3] => b
    [shape] => trapezoid
    [4] => 4
)

14、array_merge_recursive

(PHP 4 >= 4.0.1, PHP 5, PHP 7)
array_merge_recursive — 遞歸地合并一個或多個數(shù)組

  • 說明
    array array_merge_recursive ( array $array1 [, array $... ] )
    array_merge_recursive() 將一個或多個數(shù)組的單元合并起來,一個數(shù)組中的值附加在前一個數(shù)組的后面。返回作為結(jié)果的數(shù)組。
    如果輸入的數(shù)組中有相同的字符串鍵名,則這些值會被合并到一個數(shù)組中去,這將遞歸下去,因此如果一個值本身是一個數(shù)組,本函數(shù)將按照相應(yīng)的條目把它合并為另一個數(shù)組。然而,如果數(shù)組具有相同的數(shù)組鍵名,后一個值將不會覆蓋原來的值,而是附加到后面。
  • 參數(shù)
    array1:要合并的初始數(shù)組。
    ...:數(shù)組變量列表,進(jìn)行遞歸合并。
  • 返回值
    一個結(jié)果數(shù)組,其中的值合并自附加的參數(shù)。
  • 范例
<?php
    $array1 = ['color' => ['favorite'=>'red'], 5];
    $array2 = ['a','color' => ['favorite'=>'green','blue']];
    $result = array_merge_recursive($array1, $array2);
    print_r($result);
?>
以上例程會輸出:
Array
(
    [color] => Array
        (
            [favorite] => Array
                (
                    [0] => red
                    [1] => green
                )       
            [0] => blue
        )                   
    [0] => 5
    [1] => a
)

15、array_multisort

(PHP 4, PHP 5, PHP 7)
array_multisort — 對多個數(shù)組或多維數(shù)組進(jìn)行排序

  • 說明
    bool array_multisort ( array &$array1 [, mixed $array1_sort_order = SORT_ASC [, mixed $array1_sort_flags = SORT_REGULAR [, mixed $... ]]] )
    array_multisort() 可以用來一次對多個數(shù)組進(jìn)行排序,或者根據(jù)某一維或多維對多維數(shù)組進(jìn)行排序。
    關(guān)聯(lián)(string)鍵名保持不變,但數(shù)字鍵名會被重新索引。
    Note:
    If two members compare as equal, their relative order in the sorted array is undefined.
    如果兩個成員相等,它們在排序數(shù)組中的相對順序是未定義的。
  • 參數(shù)
    array1:要排序的 array。
    array1_sort_order:之前 array 參數(shù)要排列的順序。 SORT_ASC 按照上升順序排序, SORT_DESC 按照下降順序排序。
    此參數(shù)可以和 array1_sort_flags 互換,也可以完全刪除,默認(rèn)是 SORT_ASC 。
    array1_sort_flags:為 array 參數(shù)設(shè)定選項:
    排序類型標(biāo)志:
    ORT_REGULAR - 將項目按照通常方法比較(不修改類型)
    ORT_NUMERIC - 按照數(shù)字大小比較
    ORT_STRING - 按照字符串比較
    ORT_LOCALE_STRING - 根據(jù)當(dāng)前的本地化設(shè)置,按照字符串比較。 它會使用 locale 信息,可以通過 setlocale() 修改此信息。
    ORT_NATURAL - 以字符串的"自然排序",類似 natsort()
    ORT_FLAG_CASE - 可以組合 (按位或 OR) SORT_STRING 或者 SORT_NATURAL 大小寫不敏感的方式排序字符串。
    參數(shù)可以和 array1_sort_order 交換或者省略,默認(rèn)情況下是 SORT_REGULAR。
    ...
    可選的選項,可提供更多數(shù)組,跟隨在 sort order 和 sort flag 之后。 提供的數(shù)組和之前的數(shù)組要有相同數(shù)量的元素。 換言之,排序是按字典順序排列的。
  • 返回值
    成功時返回 TRUE, 或者在失敗時返回 FALSE
  • 更新日志
版本 說明
5.4.0 array1_sort_flags 增加 SORT_NATURAL 和 SORT_FLAG_CASE 選項
5.3.0 array1_sort_flags 增加選項 SORT_LOCALE_STRING
  • 范例
<?php
    $ar1 = [10, 100, 100, 0];
    $ar2 = [1, 3, 2, 4];
    array_multisort($ar1, $ar2);

    var_dump($ar1);
    var_dump($ar2);
    
    /**
        這個例子里,排序后,第一個數(shù)組會包含 0、 10、 100、 100。
        第二個數(shù)組會包含 4、1、 2、 3。
        第二個數(shù)組里的項目對應(yīng)第一個數(shù)組后也進(jìn)行了排序(100 和 100)
        array(4) {
            [0]=> int(0)
            [1]=> int(10)
            [2]=> int(100)
            [3]=> int(100)
        }
        array(4) {
            [0]=> int(4)
            [1]=> int(1)
            [2]=> int(2)
            [3]=> int(3)
        }
     */
?>

16、array_pad

(PHP 4, PHP 5, PHP 7)
array_pad — 以指定長度將一個值填充進(jìn)數(shù)組

  • 說明
    array array_pad ( array $array , int $size , mixed $value )
    array_pad() 返回 array 的一個拷貝,并用 value 將其填補(bǔ)到 size 指定的長度。如果 size 為正,則填補(bǔ)到數(shù)組的右側(cè),如果為負(fù)則從左側(cè)開始填補(bǔ)。如果 size 的絕對值小于或等于 array 數(shù)組的長度則沒有任何填補(bǔ)。有可能一次最多填補(bǔ) 1048576 個單元。
  • 參數(shù)
    array:需要被填充的原始數(shù)組。
    size:新數(shù)組的長度。
    value:將被填充的值,只有在 array 的現(xiàn)有長度小于 size 的長度時才有效。
  • 返回值
    返回 array 用 value 填充到 size 指定的長度之后的一個副本。 如果 size 為正,則填補(bǔ)到數(shù)組的右側(cè),如果為負(fù)則從左側(cè)開始填補(bǔ)。 如果 size 的絕對值小于或等于 array 數(shù)組的長度則沒有任何填補(bǔ)。
  • 范例
<?php
    $input = array(12, 10, 9);

    $result = array_pad($input, 5, 0);
    // result is array(12, 10, 9, 0, 0)

    $result = array_pad($input, -7, -1);
    // result is array(-1, -1, -1, -1, 12, 10, 9)

    $result = array_pad($input, 2, "noop");
    // not padded
?> 

17、array_pop

(PHP 4, PHP 5, PHP 7)
array_pop — 彈出數(shù)組最后一個單元(出棧)

  • 說明
    mixed array_pop ( array &$array )
    array_pop() 彈出并返回 array 數(shù)組的最后一個單元,并將數(shù)組 array 的長度減一。
    Note: 使用此函數(shù)后會重置(reset())array 指針。
  • 參數(shù)
    array:需要做出棧的數(shù)組。
  • 返回值
    返回 array 的最后一個值。如果 array 是空(如果不是一個數(shù)組),將會返回 NULL 。
  • 錯誤/異常
    調(diào)用此函數(shù)去處理非數(shù)組的值,會產(chǎn)生 E_WARNING 級別的錯誤。
  • 范例
<?php
    $stack = ['orange', 'banana', 'apple', 'raspberry'];
    $fruit = array_pop($stack);
    print_r($stack);

    /**
    *   Array
    *   (
    *       [0] => orange
    *       [1] => banana
    *       [2] => apple
    *   )
    */
?> 

18、array_product

(PHP 5 >= 5.1.0, PHP 7)
array_product — 計算數(shù)組中所有值的乘積

  • 說明
    number array_product ( array $array )
    array_product() 以整數(shù)或浮點數(shù)返回一個數(shù)組中所有值的乘積。
  • 參數(shù)
    array:這個數(shù)組。
  • 返回值
    以整數(shù)或浮點數(shù)返回一個數(shù)組中所有值的乘積。
  • 更新日志
    5.3.6 ?空數(shù)組現(xiàn)在會產(chǎn)生 1,而之前此函數(shù)處理空數(shù)組會產(chǎn)生 0。
  • 范例
<?php
    $a = [2, 4, 6, 8];
    echo "product(a) = " . array_product($a) . "\n";
    echo "product(array()) = " . array_product(array()) . "\n";

    /**
    *   product(a) = 384
    *   product(array()) = 1
    */
?> 

19、array_push

(PHP 4, PHP 5, PHP 7)
array_push — 將一個或多個單元壓入數(shù)組的末尾(入棧)

  • 說明
    int array_push ( array &$array , mixed $value1 [, mixed $... ] )
    array_push() 將 array 當(dāng)成一個棧,并將傳入的變量壓入 array 的末尾。array 的長度將根據(jù)入棧變量的數(shù)目增加。和如下效果相同:
<?php
    $array[] = $var;
?>  

并對每個傳入的值重復(fù)以上動作。
Note: 如果用 array_push() 來給數(shù)組增加一個單元,還不如用 $array[] = ,因為這樣沒有調(diào)用函數(shù)的額外負(fù)擔(dān)。
Note: 如果第一個參數(shù)不是數(shù)組,array_push() 將發(fā)出一條警告。這和 $var[] 的行為不同,后者會新建一個數(shù)組。

  • 參數(shù)
    array:輸入的數(shù)組。
    value1:要壓入 array 末尾的第一個值。
  • 返回值
    返回處理之后數(shù)組的元素個數(shù)。
  • 范例
<?php
    $stack = ['orange', 'banana'];
    array_push($stack, 'apple', 'raspberry');
    print_r($stack);

    /************************
     *
     *  Array
     *  (
     *      [0] => orange
     *      [1] => banana
     *      [2] => apple
     *      [3] => raspberry
     *  )
     *
    ***************************/
?> 

20、array_rand

(PHP 4, PHP 5, PHP 7)
array_rand — 從數(shù)組中隨機(jī)取出一個或多個單元

  • 說明
    mixed array_rand ( array $array [, int $num = 1 ] )
    從數(shù)組中取出一個或多個隨機(jī)的單元,并返回隨機(jī)條目的一個或多個鍵。 它使用了偽隨機(jī)數(shù)產(chǎn)生算法,所以不適合密碼學(xué)場景,
  • 參數(shù)
    array:輸入的數(shù)組。
    num:指明了你想取出多少個單元。
  • 返回值
    如果只取出一個,array_rand() 返回隨機(jī)單元的鍵名。 否則就返回包含隨機(jī)鍵名的數(shù)組。 完成后,就可以根據(jù)隨機(jī)的鍵獲取數(shù)組的隨機(jī)值。 取出數(shù)量如果超過 array 的長度,就會導(dǎo)致 E_WARNING 錯誤,并返回 NULL。
  • 更新日志
版本 說明
7.1.0 內(nèi)置的隨機(jī)數(shù)生成算法從 libc rand 函數(shù)改成 梅森旋轉(zhuǎn) 偽隨機(jī)數(shù)生成算法。
5.2.10 The resulting array of keys is no longer shuffled.
  • 范例

21、

22、

23、

24、

25、

26、

27、

28、

29、

30、

31、

32、

33、

34、

35、

36、

37、

38、

39、

40、

41、

42、

43、

44、

45、

46、

47、

48、

49、

50、

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容