You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

任务分配中多维数组重构求助:转换为指定嵌套格式

数组结构转换解决方案

首先,明确你的需求:把原有的$productsArray数组,按照t_assign_to → t_project → allocated_day的层级重新组织,最终每个日期对应的是t_start_time的值。

原数组结构(print_r输出)

Array ( 
    [0] => Array ( [allocation_date] => 2018-01-01 [t_project] => 10001 [t_assign_to] => G2E0357 [t_start_time] => 01:30 PM [t_end_time] => 11:30 AM [allocated_day] => 2018-01-01 ) 
    [1] => Array ( [allocation_date] => 2018-01-02 [t_project] => 10001 [t_assign_to] => G2E0357 [t_start_time] => 01:30 PM [t_end_time] => 11:30 AM [allocated_day] => 2018-01-02 ) 
    [2] => Array ( [allocation_date] => 2018-01-03 [t_project] => 10001 [t_assign_to] => G2E0357 [t_start_time] => 01:30 PM [t_end_time] => 11:30 AM [allocated_day] => 2018-01-03 ) 
    [3] => Array ( [allocation_date] => 2018-01-18 [t_project] => 10008 [t_assign_to] => XPL0315 [t_start_time] => 11:30 AM [t_end_time] => 07:30 PM [allocated_day] => 2018-01-18 ) 
    [4] => Array ( [allocation_date] => 2018-01-19 [t_project] => 10008 [t_assign_to] => XPL0315 [t_start_time] => 11:30 AM [t_end_time] => 07:30 PM [allocated_day] => 2018-01-19 ) 
    [5] => Array ( [allocation_date] => 2018-01-20 [t_project] => 10008 [t_assign_to] => XPL0315 [t_start_time] => 11:30 AM [t_end_time] => 07:30 PM [allocated_day] => 2018-01-20 ) 
    [6] => Array ( [allocation_date] => 2018-01-25 [t_project] => 10008 [t_assign_to] => G2E0357 [t_start_time] => 10:30 AM [t_end_time] => 01:30 PM [allocated_day] => 2018-01-25 ) 
    [7] => Array ( [allocation_date] => 2018-01-26 [t_project] => 10008 [t_assign_to] => G2E0357 [t_start_time] => 10:30 AM [t_end_time] => 01:30 PM [allocated_day] => 2018-01-26 ) 
    [8] => Array ( [allocation_date] => 2018-01-27 [t_project] => 10008 [t_assign_to] => G2E0357 [t_start_time] => 10:30 AM [t_end_time] => 01:30 PM [allocated_day] => 2018-01-27 ) 
)

预期目标数组结构

Array ( 
    [G2E0357] => Array ( 
        [10001] => Array ( 
            [2018-01-01] => 01:30 PM 
            [2018-01-02] => 01:30 PM 
            [2018-01-03] => 01:30 PM 
        ) 
        [10008] => Array ( 
            [2018-01-25] => 10:30 AM 
            [2018-01-26] => 10:30 AM 
            [2018-01-27] => 10:30 AM 
        ) 
    ) 
    [XPL0315] => Array ( 
        [10008] => Array ( 
            [2018-01-18] => 11:30 AM 
            [2018-01-19] => 11:30 AM 
            [2018-01-20] => 11:30 AM 
        ) 
    ) 
)

你之前代码的问题

你之前的代码只构建了两层结构,把t_project作为日期对应的值,没有把t_project设为中间层级的键,所以结构和预期不符。

修正后的代码

$project_name = array();
foreach ($productsArray as $item) {
    // 直接构建三级嵌套数组:员工ID → 项目ID → 日期,对应值为开始时间
    $project_name[$item['t_assign_to']][$item['t_project']][$item['allocated_day']] = $item['t_start_time'];
}
print_r($project_name);

代码说明

这段循环代码直接按照需求的层级关系构建数组:

  1. 第一级键为t_assign_to的员工ID值
  2. 第二级键为t_project的项目ID值
  3. 第三级键为allocated_day的日期值
  4. 最终每个日期对应的是t_start_time的时间字符串

运行这段代码就能得到你想要的数组结构啦~

内容的提问来源于stack exchange,提问作者Mithun M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:03:24