Heim  >  Artikel  >  Backend-Entwicklung  >  Ausführliche Erklärung, wie man PHP-Arrays nach mehreren Feldern gruppiert

Ausführliche Erklärung, wie man PHP-Arrays nach mehreren Feldern gruppiert

WBOY
WBOYOriginal
2024-05-04 15:36:011172Durchsuche

Wie gruppiere ich ein PHP-Array nach mehreren Feldern? array_column(): Gruppieren Sie nach dem angegebenen Feld und extrahieren Sie den Wert des Feldes als Schlüssel. array_multisort(): Sortieren Sie ein Array nach mehreren Feldern und gruppieren Sie benachbarte doppelte Zeilen. Benutzerdefinierte Funktion: Definieren Sie eine benutzerdefinierte Funktion und verwenden Sie eine Schleife, um Arrays nach angegebenen Feldern zu gruppieren.

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

Detaillierte Erklärung zum Gruppieren von Arrays nach mehreren Feldern in PHP

Das Gruppieren von Arrays ist eine häufige Operation zur Verarbeitung komplexer Datensätze. Häufig müssen Sie Array-Elemente basierend auf einem oder mehreren Feldern gruppieren, um die Datenverarbeitung oder -aggregation zu erleichtern. PHP bietet mehrere Möglichkeiten, dies zu erreichen. Die Funktion

array_column()

array_column() wird verwendet, um den Wert einer bestimmten Spalte aus einem Array zu extrahieren. Es kann zum Gruppieren von Arrays verwendet werden, indem die zum Gruppieren verwendeten Feldwerte extrahiert und als Schlüssel verwendet werden. 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);

Ausgabe:

[
    ['name' => 'John', 'city' => 'New York', 'age' => 25],
    ['name' => 'Bob', 'city' => 'New York', 'age' => 28],
    ['name' => 'Jane', 'city' => 'London', 'age' => 30],
]

array_multisort()

array_multisort() Die Funktion wird verwendet, um Arrays nach mehreren Feldern zu sortieren. Es kann auch zum Gruppieren von Arrays verwendet werden, indem das Array nach mehreren Feldern sortiert und dann benachbarte doppelte Zeilen gruppiert werden.

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

Ausgabe:

[
    '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]],
]

Benutzerdefinierte Funktion🎜🎜In einigen Fällen können Sie Ihre eigene benutzerdefinierte Funktion definieren, um Arrays zu gruppieren. Hier ist ein Beispiel für eine benutzerdefinierte Funktion, die ein Array nach mehreren Feldern gruppiert: 🎜rrreee🎜Ausgabe: 🎜rrreee

Das obige ist der detaillierte Inhalt vonAusführliche Erklärung, wie man PHP-Arrays nach mehreren Feldern gruppiert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn