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 数组按值分组的函数以及最好现实的具体形式,更多请存眷萤水红IT仄台另外相闭文章!
发表评论 取消回复