> 백엔드 개발 > PHP 튜토리얼 > 여러 필드별로 PHP 배열을 그룹화하는 방법에 대한 자세한 설명

여러 필드별로 PHP 배열을 그룹화하는 방법에 대한 자세한 설명

WBOY
풀어 주다: 2024-05-04 15:36:01
원래의
1215명이 탐색했습니다.

PHP 배열을 여러 필드로 그룹화하는 방법은 무엇입니까? array_column(): 지정된 필드별로 그룹화하고 해당 필드의 값을 키로 추출합니다. array_multisort(): 여러 필드로 배열을 정렬하고 인접한 중복 행을 그룹화합니다. 사용자 정의 함수: 사용자 정의 함수를 정의하고 루프를 사용하여 지정된 필드별로 배열을 그룹화합니다.

PHP 数组按多个字段分组的方法详解

PHP에서 여러 필드별로 배열을 그룹화하는 방법에 대한 자세한 설명

배열을 그룹화하는 것은 복잡한 데이터 세트를 처리하는 일반적인 작업입니다. 데이터 처리 또는 집계를 용이하게 하기 위해 하나 이상의 필드를 기반으로 배열 요소를 그룹화해야 하는 경우가 많습니다. PHP는 이를 달성하기 위한 여러 가지 방법을 제공합니다.

array_column()

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()

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()

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]],
]
로그인 후 복사
Custom function🎜🎜경우에 따라 배열을 그룹화하기 위해 고유한 사용자 정의 함수를 정의할 수 있습니다. 다음은 여러 필드로 배열을 그룹화하는 사용자 정의 함수의 예입니다. 🎜rrreee🎜출력: 🎜rrreee

위 내용은 여러 필드별로 PHP 배열을 그룹화하는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿