PHP如何将普通数组转换为以object_type为键的多维数组
PHP数组按object_type字段分组实现方案
基础遍历实现(最适合初学者理解)
直接遍历原数组,按object_type字段值分组即可,代码如下:
// $origin 为你的原数组变量 $result = []; foreach ($origin as $item) { $result[$item['object_type']][] = $item; }
转换后结构
执行上述代码后,$result就是你需要的多维数组,结构如下:
Array ( [1] => Array ( [0] => Array ( [initiator_id] => 259 [object_type] => 1 [object_id] => 905 [date] => 2021-11-16 06:24:16 ) [1] => Array ( [initiator_id] => 259 [object_type] => 1 [object_id] => 905 [date] => 2021-11-16 04:54:54 ) [2] => Array ( [initiator_id] => 259 [object_type] => 1 [object_id] => 905 [date] => 2021-11-16 04:53:58 ) ) [2] => Array ( [0] => Array ( [initiator_id] => 219 [object_type] => 2 [object_id] => 915 [date] => 2021-11-16 04:53:58 ) ) )
逻辑说明
PHP支持动态创建数组键,不需要提前判断$result中是否存在对应object_type的键,遍历过程中如果对应键不存在会自动初始化空数组,再把当前项追加到数组末尾。
内容的提问来源于stack exchange,提问作者Roman
相关产品推荐
相关产品推荐

