PHP 배열을 여러 필드로 그룹화하는 방법은 무엇입니까? array_column(): 지정된 필드별로 그룹화하고 해당 필드의 값을 키로 추출합니다. array_multisort(): 여러 필드로 배열을 정렬하고 인접한 중복 행을 그룹화합니다. 사용자 정의 함수: 사용자 정의 함수를 정의하고 루프를 사용하여 지정된 필드별로 배열을 그룹화합니다.
배열을 그룹화하는 것은 복잡한 데이터 세트를 처리하는 일반적인 작업입니다. 데이터 처리 또는 집계를 용이하게 하기 위해 하나 이상의 필드를 기반으로 배열 요소를 그룹화해야 하는 경우가 많습니다. PHP는 이를 달성하기 위한 여러 가지 방법을 제공합니다.
array_column()
함수는 배열에서 특정 열의 값을 추출하는 데 사용됩니다. 그룹화에 사용되는 필드 값을 추출하여 키로 활용하여 배열을 그룹화하는 데 사용할 수 있습니다. array_column()
函数用于从数组中提取特定列的值。它可以用来对数组进行分组,方法是提取用于分组的字段值并将其作为键。
$data = [ ['name' => 'John', 'city' => 'New York'], ['name' => 'Jane', 'city' => 'London'], ['name' => 'Bob', 'city' => 'New York'], ]; // 按城市分组 $grouped = array_column($data, 'city'); // 输出结果 print_r($grouped);
输出:
[ 'New York' => [ ['name' => 'John', 'city' => 'New York'], ['name' => 'Bob', 'city' => 'New York'], ], 'London' => [ ['name' => 'Jane', 'city' => 'London'], ], ]
array_multisort()
$data = [ ['name' => 'John', 'city' => 'New York', 'age' => 25], ['name' => 'Jane', 'city' => 'London', 'age' => 30], ['name' => 'Bob', 'city' => 'New York', 'age' => 28], ]; // 按城市和年龄分组 array_multisort(array_column($data, 'city'), SORT_ASC, array_column($data, 'age'), SORT_ASC, $data); // 输出结果 print_r($data);
[ ['name' => 'John', 'city' => 'New York', 'age' => 25], ['name' => 'Bob', 'city' => 'New York', 'age' => 28], ['name' => 'Jane', 'city' => 'London', 'age' => 30], ]
array_multisort()
이 함수는 여러 필드를 기준으로 배열을 정렬하는 데 사용됩니다. 여러 필드로 배열을 정렬한 다음 인접한 중복 행을 그룹화하여 배열을 그룹화하는 데 사용할 수도 있습니다. function group_by_fields(array $data, array $fields) { $grouped = []; foreach ($data as $row) { $key = ''; foreach ($fields as $field) { $key .= $row[$field] . ','; } $key = trim($key, ','); $grouped[$key][] = $row; } return $grouped; } $data = [ ['name' => 'John', 'city' => 'New York', 'age' => 25], ['name' => 'Jane', 'city' => 'London', 'age' => 30], ['name' => 'Bob', 'city' => 'New York', 'age' => 28], ]; // 按城市和年龄分组 $grouped = group_by_fields($data, ['city', 'age']); // 输出结果 print_r($grouped);
[ 'New York,25' => [['name' => 'John', 'city' => 'New York', 'age' => 25]], 'New York,28' => [['name' => 'Bob', 'city' => 'New York', 'age' => 28]], 'London,30' => [['name' => 'Jane', 'city' => 'London', 'age' => 30]], ]
위 내용은 여러 필드별로 PHP 배열을 그룹화하는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!