首页 > 解决方案 > 基于子数组列值中的列重新定义数组 - PHP

问题描述

我有一个以下ModulePermissions数组

Array
(
    [0] => Array
        (
            [module_permission_index_id] => 347
            [module_id] => 1
            [user_id] => 29
            [can_view] => 1
            [can_edit] => 1
            [can_add] => 1
        )

    [1] => Array
        (
            [module_permission_index_id] => 348
            [module_id] => 2
            [user_id] => 29
            [can_view] => 1
            [can_edit] => 1
            [can_add] => 1
        )
   ... ... ...
)

目标

现在我想根据他们的模块(模块 ID 具有多个权限)对数组进行排序,如下所示(请忽略语法并理解)

   [1] => array(
       array(
            [module_permission_index_id] => 347
            [user_id] => 29
            [can_view] => 1
            [can_edit] => 1
            [can_add] => 1
       )
   )
   [2] => array(
       array(
            [module_permission_index_id] => 348
            [user_id] => 29
            [can_view] => 1
            [can_edit] => 1
            [can_add] => 1
       )
   )
   ... ... ...
)

PHP有什么方法可以帮助做到这一点吗?

标签: phpcodeignitersortingmultidimensional-array

解决方案


最简单的方法是:

$newData = [];
foreach ($yourData as $item) {
    $newData[$item['module_id']][] = $item;
}

推荐阅读