array_chunk()函數(shù)將數(shù)組作為輸入并將該數(shù)組拆分為給定大小的較小塊。 根據(jù)數(shù)組中可用總數(shù)的倍數(shù),最后一個(gè)數(shù)組塊包含的實(shí)際元素?cái)?shù)可能少于傳遞的大小。
array array_chunk ( array $input, int $size [, bool $preserve_keys] );
序號(hào) | 參數(shù)及說明 |
---|---|
1 | $input(必填) 這是我們要拆分成較小塊的輸入數(shù)組。 這是必填參數(shù)。 |
2 | $size(必填) 我們想要以$input的形式拆分傳遞的數(shù)組的每個(gè)塊的大小。這也是必填參數(shù)。 |
3 | reserve_keys(可選) 這是一個(gè)可選的布爾型參數(shù),但當(dāng)它設(shè)置為true時(shí),將保留數(shù)組中的所有鍵。 如果不傳遞它,則其缺省值為false,這將以數(shù)字方式對(duì)塊重新編制索引。 |
PHP array_chunk()函數(shù)返回一個(gè)從零開始的多維數(shù)字索引數(shù)組,每個(gè)維都包含size個(gè)元素。
此函數(shù)最初是在PHP版本4.2.0中引入的。
如果傳遞的size小于1,則將引發(fā)E_WARNING,并返回NULL。
讓我們嘗試一個(gè)簡(jiǎn)單的實(shí)例,將數(shù)組分成多個(gè)塊,每個(gè)塊由2個(gè)元素組成-
<?php $input = array('abc', 'bcd', 'cde', 'def', 'efg'); print_r(array_chunk($input, 2)); ?>測(cè)試看看?/?
這將產(chǎn)生以下結(jié)果,嘗試觀察每個(gè)較小數(shù)組的索引,所有三個(gè)塊均從零開始-
Array ( [0] => Array ( [0] => abc [1] => bcd ) [1] => Array ( [0] => cde [1] => def ) [2] => Array ( [0] => efg ) )
讓我們?cè)俅螄L試相同的實(shí)例,但這次我們將參數(shù)preserve_keys設(shè)置為true:
<?php $input = array('abc', 'bcd', 'cde', 'def', 'efg'); print_r(array_chunk($input, 2, true)); ?>測(cè)試看看?/?
這將產(chǎn)生以下結(jié)果,這次每個(gè)元素都像保留原始數(shù)組一樣保留其索引值-
Array ( [0] => Array ( [0] => abc [1] => bcd ) [1] => Array ( [2] => cde [3] => def ) [2] => Array ( [4] => efg ) )
以下示例為size參數(shù)傳遞了0值,因此引發(fā)了警告消息-
<?php //指定分割為大小為0的數(shù)組,將拋出錯(cuò)誤 $input = array('abc', 'bcd', 'cde', 'def', 'efg'); print_r(array_chunk($input, 0)); ?>測(cè)試看看?/?
輸出結(jié)果
PHP Warning: array_chunk(): Size parameter expected to be greater than 0 in main.php on line 3