PHP array_chunk() 函式



定義和用法

array_chunk() 函式接收一個數組作為輸入,並將該陣列拆分成給定 size 的較小塊。根據陣列中可用總數的倍數因子,最後一個塊可能包含少於傳入 size 的元素。

語法

array array_chunk ( array $input, int $size [, bool $preserve_keys] );

引數

序號 引數和描述
1

input (必填)

這是我們要拆分成較小塊的輸入陣列。這是必填引數。

2

size (必填)

我們要將傳入的 input 陣列拆分成多少個塊的大小。這也是必填引數。

3

preserve_keys (可選)

這是一個可選的布林引數,但當設定為 TRUE 時,陣列中的所有鍵都將被保留。如果不傳遞它,則其預設值為 FALSE,這將對塊進行數值重新索引。

返回值

PHP array_chunk() 函式返回一個多維數值索引陣列,從零開始,每個維度包含 size 個元素。

PHP 版本

此函式首次出現在 PHP 4.2.0 版本中。

錯誤/異常

如果傳入的 size 小於 1,則會丟擲 E_WARNING 並返回 NULL。

示例

讓我們嘗試一個簡單的示例,將我們的陣列拆分成多個包含 2 個元素的塊:

<?php
   $input = array('abc', 'bcd', 'cde', 'def', 'efg');
   print_r(array_chunk($input, 2));
?>

這將產生以下結果,嘗試觀察每個較小陣列的索引,所有三個塊的索引都從零開始:

Array
(
    [0] => Array
        (
            [0] => abc
            [1] => bcd
        )

    [1] => Array
        (
            [0] => cde
            [1] => def
        )

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

)

示例

讓我們再次嘗試相同的示例,但這次我們將引數 preserve_keys 設定為 true:

<?php
   $input = array('abc', 'bcd', 'cde', 'def', 'efg');
   print_r(array_chunk($input, 2, true));
?>

這次將產生以下結果,每個元素都保留其在原始陣列中的索引:

Array
(
    [0] => Array
        (
            [0] => abc
            [1] => bcd
        )

    [1] => Array
        (
            [2] => cde
            [3] => def
        )

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

)

示例

以下示例為 size 引數傳遞 0 值,因此它會丟擲警告訊息:

<?php
   $input = array('abc', 'bcd', 'cde', 'def', 'efg');
   print_r(array_chunk($input, 0));
?>

這將產生以下結果:

PHP Warning:  array_chunk(): Size parameter expected to be greater than 0 in main.php on line 3
php_function_reference.htm
廣告