PHP 数组按值分组的函数和最佳实践
短信预约 -IT技能 免费直播动态提醒
PHP 数组按值分组的函数和最佳实践
array_group_by 函数
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 数组按值分组的函数和最佳实践的详细内容,更多请关注编程网其它相关文章!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341