mcaskill / php-array-chunk-by
使用回调函数将数组分割成块。
v1.0.0
2018-08-23 21:48 UTC
Requires
- php: >=5.4.0
This package is not auto-updated.
Last update: 2024-09-19 21:51:45 UTC
README
(PHP 5 >= 5.4)
array_chunk_by
— 使用回调函数将数组分割成块。
描述
array array_chunk_by( array $array, mixed $key1 [, mixed $... ] )
通过迭代应用 $callback 函数到 $array 的元素上,将数组分割成数组。
基于 Raivo Laanemets 的 groupAdjacent()
函数。
参数
$array
— 要进行块分割的数组。$callback
— 要使用的回调函数。bool callback ( mixed $previous, mixed $current )
$previous
- 保存前一次迭代的值。$current
- 保存当前迭代的值。
如果
$callback
函数返回TRUE
,则将$array
中的当前值分割成新块。$preserve_keys
— 当设置为TRUE
时,将保留键。默认是FALSE
,这将按数字重新索引块。
返回值
返回一个多维数值索引数组,从零开始,每个维度包含相关元素。
示例
示例 #1 array_chunk_by()
在相邻元素之间的差值大于 1 的地方分割数组。
$input = [ 1, 2, 3, 4, 14, 21, 23, 28, 29 ];
$result = array_chunk_by( $input, function ($prev, $curr) {
return ($curr - $prev) > 1;
});
var_export( $result );
上面的示例将输出
array (
0 =>
array (
0 => 1,
1 => 2,
2 => 3,
3 => 4,
),
1 =>
array (
0 => 14,
),
2 =>
array (
0 => 21,
),
3 =>
array (
0 => 23,
),
4 =>
array (
0 => 28,
1 => 29,
),
)
示例 #2 array_chunk_by()
将数组分组,其中相邻元素具有相同的值。
$input = [ 5, 5, 3, 5, 3, 3 ];
$result = array_chunk_by( $input, function ($prev, $curr) {
return ($previous != $current);
});
var_export( $result );
上面的示例将输出
array (
0 =>
array (
0 => 5,
1 => 5,
),
1 =>
array (
0 => 3,
),
2 =>
array (
0 => 5,
),
3 =>
array (
0 => 3,
1 => 3,
),
)
安装
使用 Composer
$ composer require mcaskill/php-array-chunk-by
不使用 Composer
你为什么不使用 Composer?
从 gist 下载 Function.Array-Group-By.php
并将其保存到项目路径中的某个位置。