首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将项目添加到数组中,同时考虑到一年中的几个月?

如何将项目添加到数组中,同时考虑到一年中的几个月?
EN

Stack Overflow用户
提问于 2022-06-06 20:25:50
回答 1查看 48关注 0票数 0

我对这个结构有反应。

代码语言:javascript
运行
复制
{
"records": [
{
"patientName": "CECILIA NONE ANCINEZ DE LOPEZ",
"patientProductCode": "MO000250",
"patientProduct": "RUXOLITINIB 15 MG TABLETA",
"patientFirstDispatch": "18/11/2021",
"dispatch": [
{
"month": 6,
"year": 2022,
"quantity": 30,
"period": "2022-6"
},
{
"month": 4,
"year": 2022,
"quantity": 30,
"period": "2022-4"
},
{
"month": 3,
"year": 2022,
"quantity": 30,
"period": "2022-3"
},
{
"month": 2,
"year": 2022,
"quantity": 30,
"period": "2022-2"
},
{
"month": 1,
"year": 2022,
"quantity": 30,
"period": "2022-1"
},
{
"month": 12,
"year": 2021,
"quantity": 30,
"period": "2021-12"
}
]
},
]
}

在过去的7个月里,我也有过这样的经历。

代码语言:javascript
运行
复制
{
"months": [
{
"month": "June",
"position": 6,
"year": 2022,
"period": "2022-6"
},
{
"month": "May",
"position": 5,
"year": 2022,
"period": "2022-5"
},
{
"month": "April",
"position": 4,
"year": 2022,
"period": "2022-4"
},
{
"month": "March",
"position": 3,
"year": 2022,
"period": "2022-3"
},
{
"month": "February",
"position": 2,
"year": 2022,
"period": "2022-2"
},
{
"month": "January",
"position": 1,
"year": 2022,
"period": "2022-1"
},
{
"month": "December",
"position": 12,
"year": 2021,
"period": "2021-12"
}
]
}

当调度数组和月份数组之间不匹配时,我需要在调度数组中添加一个属性"quantity“=0的对象。

比较数组“月份”和“分派”的结果应该会返回这样的结果。

在“分派”数组的位置1处添加了一个对象。

代码语言:javascript
运行
复制
{
"records": [
{
"patientName": "CECILIA NONE ANCINEZ DE LOPEZ",
"patientProductCode": "MO000250",
"patientProduct": "RUXOLITINIB 15 MG TABLETA",
"patientFirstDispatch": "18/11/2021",
"dispatch": [
{
"month": 6,
"year": 2022,
"quantity": 30,
"period": "2022-6"
},
{
"month": 5,
"year": 2022,
"quantity": 0,
"period": "2022-5"
},
{
"month": 4,
"year": 2022,
"quantity": 30,
"period": "2022-4"
},
{
"month": 3,
"year": 2022,
"quantity": 30,
"period": "2022-3"
},
{
"month": 2,
"year": 2022,
"quantity": 30,
"period": "2022-2"
},
{
"month": 1,
"year": 2022,
"quantity": 30,
"period": "2022-1"
},
{
"month": 12,
"year": 2021,
"quantity": 30,
"period": "2021-12"
}
]
},
]
}

我试着去做,但是我不能正确地添加对象。你能帮我解决这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2022-06-07 02:51:57

您可以使用forEach()array_filter()进行搜索,然后添加新记录以进行调度。与:

代码语言:javascript
运行
复制
foreach ($objectMonths->months as $arrayMonth) {
    foreach ($objectDispatch->records as $record) {
        $exist = array_filter($record->dispatch, fn($mon) => $mon->period === $arrayMonth->period);
        if (!count($exist)) {
            $month = date('m', strtotime($arrayMonth->period));
            $record->dispatch[] = (object)['month' => (int)$month, 'year' => $arrayMonth->year, 'quantity' => 0, 'period' => $arrayMonth->period];
            usort($record->dispatch, fn($a, $b) => $a->period < $b->period);
        }
    }
}

这里中的代码示例

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72523121

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档