Home > Backend Development > PHP Tutorial > PHP array grouping by value functions and best practices

PHP array grouping by value functions and best practices

王林
Release: 2024-05-04 13:30:01
Original
1072 people have browsed it

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

PHP array grouping by value functions and best practices

array_group_by function

Introduced in PHP 8.0array_group_by() Function that groups array elements based on a specified key or callback function. The syntax is as follows:

array_group_by(array $array, mixed $key_or_callback, bool $preserve_keys = false): array
Copy after login
  • $array: The array to be grouped.
  • $key_or_callback: Extract the array key name or callback function of the grouping key.
  • $preserve_keys: Optional parameter, specifying whether to preserve the original keys. Default is false.

Example

$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);
Copy after login

Output:

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
        )
    )
)
Copy after login

Best Practice

In addition to the array_group_by() function, There are other ways of grouping arrays. Choosing the appropriate method depends on the specific situation.

  • If you need to group by a single key, you can use group_by Auxiliary function:
function group_by(array $array, string $key): array
{
    $result = [];
    foreach ($array as $item) {
        $result[$item[$key]][] = $item;
    }
    return $result;
}
Copy after login
  • If you need to group by multiple keys, you can Use array_reduce() Function:
$grouped_by_type_and_name = array_reduce($fruits, function($result, $item) {
    $result[$item['type']][$item['name']] = $item;
    return $result;
}, []);
Copy after login
  • If you need to group the array by key name, you can use array_column() Function:
$grouped_by_name = array_column($fruits, null, 'name');
Copy after login

It is crucial to choose the best grouping method based on project requirements and data structure.

The above is the detailed content of PHP array grouping by value functions and best practices. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template