array_chunk
(PHP 4 >= 4.2.0, PHP 5, PHP 7)
array_chunk — 将一个数组分割成多个
说明
array array_chunk ( array $input , int $size [, bool $preserve_keys = false ] )
将一个数组分割成多个数组,其中每个数组的单元数目由 size 决定。最后一个数组的单元数目可能会少于 size 个。
参数
input
需要操作的数组
size
每个数组的单元数目
preserve_keys
设为 TRUE ,可以使 PHP 保留输入数组中原来的键名。如果你指定了 FALSE ,那每个结果数组将用从零开始的新数字索引。默认值是 FALSE 。
返回值
得到的数组是一个多维数组中的单元,其索引从零开始,每一维包含了 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
- ))
范例二:
二维数组拆分成多个数组:
- <?php
- $arr = array(
- array(
- 'id' => 1,
- 'user_name'=>'test1'
- ),
- array(
- 'id' => 2,
- 'user_name'=>'test2'
- ),
- array(
- 'id' => 3,
- 'user_name'=>'test3'
- ),
- array(
- 'id' => 4,
- 'user_name'=>'test2'
- ),
- array(
- 'id' => 5,
- 'user_name'=>'test3'
- )
- );
- var_dump(array_chunk($arr,3));
以上例程会输出:
- array (size=2)
- 0 =>
- array (size=3)
- 0 =>
- array (size=2)
- 'id' => int 1
- 'user_name' => string 'test1' (length=5)
- 1 =>
- array (size=2)
- 'id' => int 2
- 'user_name' => string 'test2' (length=5)
- 2 =>
- array (size=2)
- 'id' => int 3
- 'user_name' => string 'test3' (length=5)
- 1 =>
- array (size=2)
- 0 =>
- array (size=2)
- 'id' => int 4
- 'user_name' => string 'test2' (length=5)
- 1 =>
- array (size=2)
- 'id' => int 5
- 'user_name' => string 'test3' (length=5)
总结:array_chunk()函数可以拆分任何的数组,不管你是一维还是二维还是N维;无非是拆分出来的结果会比原来的数组多一个array仅此而已;
2017年06月03日 20:40:38 沙发
给大家一个面试题,用此函数也可以解决,不知道有没有PHP高手的人能做得出来?如下图:
2017年06月03日 20:50:24 1层
@北大青岛PHP面试官