|
|
 |
array_chunk (PHP 4 >= 4.2.0, PHP 5) array_chunk -- 将一个数组分割成多个 说明array array_chunk ( array input, int size [, bool preserve_keys])
array_chunk() 将一个数组分割成多个数组,其中每个数组的单元数目由
size 决定。最后一个数组的单元数目可能会少几个。得到的数组是一个多维数组中的单元,其索引从零开始。
将可选参数 preserve_keys 设为 TRUE,可以使 PHP
保留输入数组中原来的键名。如果你指定了 FALSE,那每个结果数组将用从零开始的新数字索引。默认值是 FALSE。
例子 1. array_chunk() 例子 |
<?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
)
) |
|
mick at vandermostvanspijk dot nl
07-Apr-2004 06:02
[Editors note: This function was based on a previous function by gphemsley
at nospam users dot sourceforge.net]
For those of you that need
array_chunk() for PHP < 4.2.0, this function should do the
trick:
<?php
if (!function_exists('array_chunk'))
{
function array_chunk( $input, $size, $preserve_keys = false)
{
@reset( $input );
$i = $j = 0;
while(
@list( $key, $value ) = @each( $input ) ) {
if( !( isset(
$chunks[$i] ) ) ) {
$chunks[$i] =
array();
}
if( count( $chunks[$i] ) < $size )
{
if( $preserve_keys ) {
$chunks[$i][$key] =
$value;
$j++;
} else {
$chunks[$i][] =
$value;
}
} else {
$i++;
if(
$preserve_keys ) {
$chunks[$i][$key] =
$value;
$j++;
} else {
$j =
0;
$chunks[$i][$j] =
$value;
}
}
}
return
$chunks;
}
}
?>
| |