首页 >后端开发 >php教程 >如何按列值有效地对 2D PHP 数组进行分组?

如何按列值有效地对 2D PHP 数组进行分组?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-26 02:27:09224浏览

How to Efficiently Group a 2D PHP Array by Column Value?

使用 PHP 按列值对二维数组进行高效分组

按特定列值对多维数组进行分组可以增强数据组织和检索。虽然没有用于此任务的原生 PHP 函数,但使用 foreach 循环的自定义方法可以有效地实现此目标。

问题:

考虑以下代表的 2D 数组数据行:

$array = [
    [
        'id' => 96,
        'shipping_no' => '212755-1',
        'part_no' => 'reterty',
        'description' => 'tyrfyt',
        'packaging_type' => 'PC',
    ],
    [
        'id' => 96,
        'shipping_no' => '212755-1',
        'part_no' => 'dftgtryh',
        'description' => 'dfhgfyh',
        'packaging_type' => 'PC',
    ],
    [
        'id' => 97,
        'shipping_no' => '212755-2',
        'part_no' => 'ZeoDark',
        'description' => 's%c%s%c%s',
        'packaging_type' => 'PC',
    ],
];

目标是按 'id' 列对数组元素进行分组并形成子数组

解决方案:

使用 foreach 循环:

$result = [];
foreach ($data as $element) {
    $result[$element['id']][] = $element;
}

解释:

foreach 循环遍历 $data 数组中的每个元素。对于每个元素,它检查“id”列并将其用作 $result 数组中的键。如果键(id)已经存在,则将新元素追加到相应的子数组中。

输出:

$result 数组将根据 ' 进行分组id' 列,结果为:

$result = [
    96 => [
        [
            'id' => 96,
            'shipping_no' => '212755-1',
            'part_no' => 'reterty',
            'description' => 'tyrfyt',
            'packaging_type' => 'PC',
        ],
        [
            'id' => 96,
            'shipping_no' => '212755-1',
            'part_no' => 'dftgtryh',
            'description' => 'dfhgfyh',
            'packaging_type' => 'PC',
        ],
    ],
    97 => [
        [
            'id' => 97,
            'shipping_no' => '212755-2',
            'part_no' => 'ZeoDark',
            'description' => 's%c%s%c%s',
            'packaging_type' => 'PC',
        ],
    ],
];

此方法提供了一种灵活高效的方法来按指定的方式对 2D 数组进行分组列值,实现高效的数据提取和操作。

以上是如何按列值有效地对 2D PHP 数组进行分组?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn