PHP 8.0 memperkenalkan fungsi array_group_by()
untuk mengumpulkan elemen tatasusunan berdasarkan kekunci atau fungsi panggil balik yang ditentukan. Sintaksnya adalah seperti berikut: 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');
$array
: tatasusunan untuk dikumpulkan. $key_or_callback
: Ekstrak nama kunci tatasusunan atau fungsi panggil balik kunci kumpulan. $preserve_keys
: Parameter pilihan, menyatakan sama ada untuk mengekalkan kunci asal. Lalai ialah false
. 🎜Contoh🎜rrreee🎜Output: 🎜rrreee🎜Amalan Terbaik🎜🎜Selain fungsi array_group_by()
, terdapat cara lain untuk mengumpulkan tatasusunan. Memilih kaedah yang sesuai bergantung pada situasi tertentu. 🎜group_by
Fungsi tambahan: 🎜🎜rrreeearray_reduce ()
Fungsi: 🎜🎜rrreeearray_column()
Fungsi: 🎜🎜rrreee 🎜Pilih mengikut keperluan projek dan struktur data Kaedah pengumpulan optimum adalah penting. 🎜Atas ialah kandungan terperinci Pengumpulan tatasusunan PHP mengikut fungsi nilai dan amalan terbaik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!