
PHP 8.0 引入了 array_group_by() 函数,用于根据指定键或回调函数对数组元素进行分组。其语法如下:
array_group_by(array $array, mixed $key_or_callback, bool $preserve_keys = false): array
$array:要分组的数组。$key_or_callback:提取分组键的数组键名或回调函数。$preserve_keys:可选参数,指定是否保留原始键。默认为 false。$fruits = [
['name' => 'Apple', 'type' => 'Red'],
['name' => 'Banana', 'type' => 'Yellow'],
['name' => 'Orange', 'type' => 'Orange'],
['name' => 'Mango', 'type' => 'Yellow'],
];
$grouped_by_type = array_group_by($fruits, 'type');
// 输出按类型分组后的数组
print_r($grouped_by_type);输出:
Array
(
[Red] => Array
(
[0] => Array
(
[name] => Apple
[type] => Red
)
)
[Yellow] => Array
(
[0] => Array
(
[name] => Banana
[type] => Yellow
)
[1] => Array
(
[name] => Mango
[type] => Yellow
)
)
[Orange] => Array
(
[0] => Array
(
[name] => Orange
[type] => Orange
)
)
)除了 array_group_by() 函数之外,还有其他分组数组的方法。选择合适的方法取决于特定情况。
group_by 辅助函数:function group_by(array $array, string $key): array
{
$result = [];
foreach ($array as $item) {
$result[$item[$key]][] = $item;
}
return $result;
}array_reduce() 函数:$grouped_by_type_and_name = array_reduce($fruits, function($result, $item) {
$result[$item['type']][$item['name']] = $item;
return $result;
}, []);array_column() 函数:$grouped_by_name = array_column($fruits, null, 'name');
根据项目需求和数据结构选择最佳分组方法至关重要。
立即学习“PHP免费学习笔记(深入)”;
以上就是PHP 数组按值分组的函数和最佳实践的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号