mcaskill / php-array-group-by
根据给定的键对数组进行分组。
1.0.0
2017-11-24 13:45 UTC
Requires
- php: >=5.4.0
This package is not auto-updated.
Last update: 2024-09-20 20:10:56 UTC
README
(PHP 5 >= 5.4)
array_group_by
— 根据给定的键对数组进行分组。
描述
array|null array_group_by( array $array, mixed $key1 [, mixed $... ] )
根据所有数组成员共享的给定 $key
或键集,将数组分组到数组中。
基于 Jake Zatecky 的 array_group_by()
函数。
此分支提供
$key
参数可以是一个闭包
参数
$array
— 要对其实施分组的数组。$key
— 要分组或分割的键。可以是 字符串、整数、浮点数 或 回调。如果键是 NULL,则跳过迭代的元素。如果键是回调,它必须从数组中返回一个有效的键。string|int callback ( mixed $item )
...
— 用于对下一组子数组进行分组的附加键。
返回值
返回一个多维数组,每个维度都包含通过传递的键分组的元素。
错误/异常
如果 $key
不是接受的类型之一,将抛出 E_USER_ERROR
并返回 NULL
。
示例
示例 #1 array_group_by() 示例
$records = [
[
"state" => "IN",
"city" => "Indianapolis",
"object" => "School bus"
],
[
"state" => "IN",
"city" => "Indianapolis",
"object" => "Manhole"
],
[
"state" => "IN",
"city" => "Plainfield",
"object" => "Basketball"
],
[
"state" => "CA",
"city" => "San Diego",
"object" => "Light bulb"
],
[
"state" => "CA",
"city" => "Mountain View",
"object" => "Space pen"
]
];
$grouped = array_group_by( $records, "state", "city" );
上述示例将输出
Array
(
[IN] => Array
(
[Indianapolis] => Array
(
[0] => Array
(
[state] => IN
[city] => Indianapolis
[object] => School bus
)
[1] => Array
(
[state] => IN
[city] => Indianapolis
[object] => Manhole
)
)
[Plainfield] => Array
(
[0] => Array
(
[state] => IN
[city] => Plainfield
[object] => Basketball
)
)
)
[CA] => Array
(
[San Diego] => Array
(
[0] => Array
(
[state] => CA
[city] => San Diego
[object] => Light bulb
)
)
[Mountain View] => Array
(
[0] => Array
(
[state] => CA
[city] => Mountain View
[object] => Space pen
)
)
)
)
安装
使用 Composer
$ composer require mcaskill/php-array-group-by
不使用 Composer
为什么不使用 composer?从 gist 下载 Function.Array-Group-By.php
并将其保存到项目路径的某个位置。