Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Array-Gruppierung nach Wertfunktionen und Best Practices

PHP-Array-Gruppierung nach Wertfunktionen und Best Practices

王林
王林Original
2024-05-04 13:30:01976Durchsuche

PHP 数组按值分组的函数和最佳实践

PHP-Array-Gruppierung nach Wertfunktionen und Best Practices

array_group_by-Funktion

PHP 8.0 führte die Funktion array_group_by() zum Gruppieren von Array-Elementen basierend auf einem angegebenen Schlüssel oder einer Callback-Funktion ein. Die Syntax lautet wie folgt: 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: das zu gruppierende Array.
    • $key_or_callback: Extrahieren Sie den Array-Schlüsselnamen oder die Rückruffunktion des Gruppenschlüssels.
  • $preserve_keys: Optionaler Parameter, der angibt, ob die Originalschlüssel beibehalten werden sollen. Der Standardwert ist false.

    🎜Beispiel🎜rrreee🎜Ausgabe: 🎜rrreee🎜Best Practice🎜🎜Neben der Funktion array_group_by() gibt es noch andere Möglichkeiten, Arrays zu gruppieren. Die Wahl der geeigneten Methode hängt von der jeweiligen Situation ab. 🎜
    • Wenn Sie nach einem einzelnen Schlüssel gruppieren müssen, können Sie die Hilfsfunktion group_by verwenden: 🎜🎜rrreee
      • Wenn Sie nach mehreren Schlüsseln gruppieren müssen, können Sie kann die Funktion array_reduce () verwenden: 🎜🎜rrreee
        • Wenn Sie Array-Schlüsselnamen gruppieren müssen, können Sie die Funktion array_column() verwenden: 🎜🎜rrreee 🎜Wählen Sie entsprechend den Projektanforderungen und der Datenstruktur aus. Die optimale Gruppierungsmethode ist entscheidend. 🎜

Das obige ist der detaillierte Inhalt vonPHP-Array-Gruppierung nach Wertfunktionen und Best Practices. 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