PHP 8.0에서는 지정된 키 또는 콜백 함수를 기반으로 배열 요소를 그룹화하기 위한 array_group_by()
함수를 도입했습니다. 구문은 다음과 같습니다: 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
: 그룹화할 배열. $key_or_callback
: 그룹 키의 배열 키 이름 또는 콜백 함수를 추출합니다. $preserve_keys
: 원래 키를 유지할지 여부를 지정하는 선택적 매개변수입니다. 기본값은 false
입니다. 🎜예🎜rrreee🎜출력: 🎜rrreee🎜모범 사례🎜🎜 array_group_by()
함수 외에도 배열을 그룹화하는 다른 방법이 있습니다. 적절한 방법을 선택하는 것은 특정 상황에 따라 다릅니다. 🎜group_by
를 사용할 수 있습니다. 보조 기능: 🎜🎜rrreeearray_reduce()
를 사용할 수 있습니다. 함수: 🎜🎜rrreeearray_column()
함수를 사용할 수 있습니다. 🎜🎜rrreee 🎜프로젝트 요구 사항 및 데이터 구조에 따라 선택 최적의 그룹화 방법이 중요합니다. 🎜위 내용은 가치 함수 및 모범 사례를 기준으로 PHP 배열 그룹화의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!