array_group_by

A PHP function that groups an array by a key or set of keys shared between all array members.

  • 所有者: jakezatecky/array_group_by
  • 平台:
  • 許可證: MIT License
  • 分類:
  • 主題:
  • 喜歡:
    0
      比較:

Github星跟蹤圖

array_group_by

Packagist
Build Status
GitHub license

A PHP function to group an array by a key or set of keys shared between all array members.

Installation

To get the latest version of array_group_by, simply require the project using Composer:

$ composer require jakezatecky/array_group_by

Need support for PHP 5.6? Then run the following:

$ composer require jakezatecky/array_group_by:^1.1.0

If you do not want to use Composer, you can just require the src/array_group_by.php file.

Usage

To use array_group_by, simply pass an array with any number of keys to group by:

$records = [
    [
        'state'  => 'IN',
        'city'   => 'Indianapolis',
        'object' => 'School bus',
    ],
    [
        'state'  => 'IN',
        'city'   => 'Indianapolis',
        'object' => 'Manhole',
    ],
    [
        'state'  => 'IN',
        'city'   => 'Plainfield',
        'object' => 'Basketball',
    ],
    [
        'state'  => 'CA',
        'city'   => 'San Diego',
        'object' => 'Light bulb',
    ],
    [
        'state'  => 'CA',
        'city'   => 'Mountain View',
        'object' => 'Space pen',
    ],
];

$grouped = array_group_by($records, 'state', 'city');

Example output:

Array
(
    [IN] => Array
        (
            [Indianapolis] => Array
                (
                    [0] => Array
                        (
                            [state] => IN
                            [city] => Indianapolis
                            [object] => School bus
                        )

                    [1] => Array
                        (
                            [state] => IN
                            [city] => Indianapolis
                            [object] => Manhole
                        )

                )

            [Plainfield] => Array
                (
                    [0] => Array
                        (
                            [state] => IN
                            [city] => Plainfield
                            [object] => Basketball
                        )

                )

        )

    [CA] => Array
        (
            [San Diego] => Array
                (
                    [0] => Array
                        (
                            [state] => CA
                            [city] => San Diego
                            [object] => Light bulb
                        )

                )

            [Mountain View] => Array
                (
                    [0] => Array
                        (
                            [state] => CA
                            [city] => Mountain View
                            [object] => Space pen
                        )

                )

        )
)

Using a Callback

If more complex grouping behavior is desired, you can also pass in a callback function to determine the group key:

$grouped = array_group_by($records, function ($row) {
    return $row->city;
});

主要指標

概覽
名稱與所有者jakezatecky/array_group_by
主編程語言PHP
編程語言PHP (語言數: 1)
平台
許可證MIT License
所有者活动
創建於2014-05-16 02:39:42
推送於2023-03-23 23:15:42
最后一次提交
發布數7
最新版本名稱v2.0.0 (發布於 )
第一版名稱0.7.0 (發布於 2014-05-16 22:51:57)
用户参与
星數99
關注者數6
派生數16
提交數97
已啟用問題?
問題數6
打開的問題數1
拉請求數3
打開的拉請求數0
關閉的拉請求數1
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?