php - 基于子数组列值中的列重新定义数组 - 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有什么方法可以帮助做到这一点吗?
解决方案
最简单的方法是:
$newData = [];
foreach ($yourData as $item) {
$newData[$item['module_id']][] = $item;
}
推荐阅读
- python - 使用 Python 按名称复制特定子目录
- html - 如何在悬停时切换 div 的可见性?
- flutter - 当 `maxLines` 为空时,如何使 `TextFormField` `prefixIcon` 保持在顶部对齐?
- java - 与 Jackson 一起使用 Jayway JsonPath
- c# - 列表
Add 方法在 Button.Click 事件中不起作用,但在 Form.Load 中起作用 - java - Spring:迁移到 OpenJDK-10 不工作,mvn install 工作
- knife - 如何从我的笔记本电脑轻松连接到 AWS 机器?
- javascript - Javascript 片段在 Safari 11 和 12 中不起作用
- angular - Angular/Firebase - Guard 在 Firebase 初始化完成之前运行
- jenkins - 如何使用“Jenkins 配置即代码”Jenkins 插件 (JCASC) 配置 Fortify 插件?