首页 >后端开发 >php教程 >如何按列值将 2D 数组分组为 3D 数组?

如何按列值将 2D 数组分组为 3D 数组?

Susan Sarandon
Susan Sarandon原创
2024-11-02 17:28:291022浏览

How to Group a 2D Array by Column Value into a 3D Array?

使用 3D 数组的列值对 2D 数组数据进行分组

在编程中,通常需要有效地操作和组织数据结构。根据特定标准对数据进行分组是一项常见任务。本文探讨了如何使用列值对 2D 数组进行分组以创建 3D 数组。

考虑以下 2D 数组:

[
    ['cust' => 'XT8900', 'type' => 'standard', 'level' => 1],
    ['cust' => 'XT8944', 'type' => 'standard', 'level' => 1],
    ['cust' => 'XT8922', 'type' => 'premier', 'level' => 3],
    ['cust' => 'XT8816', 'type' => 'permier', 'level' => 3],
    ['cust' => 'XT7434', 'type' => 'standard', 'level' => 7],
]

我们的目标是按 ' 对此数据进行分组level' 列,它有效地创建了一个 3D 数组。所需的输出如下所示:

Array (

   [1] => Array (
          [0] => Array (
                    [cust] => XT8900
                    [type] => standard
                    )
          [1] => Array (
                    [cust] => XT8944
                    [type] => standard
                    )
          )

   [3] => Array (
          [2] => Array (
                 [cust] => XT8922
                 [type] => premier
                 )

          [3] => Array (
                 [cust] => XT8816
                 [type] => permier
                 )
          )

   [7] => Array (
          [4] => Array (
                 [cust] => XT7434
                 [type] => standard
                 )
          )
)

最佳方法

最有效的解决方案是如果可能的话直接创建 3D 数组。但是,如果这不可行,我们可以使用中间临时数组进行排序:

<code class="php">foreach ($input_arr as $key => &$entry) {
    $level_arr[$entry['level']][$key] = $entry;
}</code>

这会产生所需的 3D 数组结构。如果可能的话,请务必考虑从一开始就以最终格式构建数组,以获得最佳性能。

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

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