我对这个结构有反应。
{
"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个月里,我也有过这样的经历。
{
"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处添加了一个对象。
{
"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"
}
]
},
]
}
我试着去做,但是我不能正确地添加对象。你能帮我解决这个问题吗?
发布于 2022-06-07 02:51:57
您可以使用forEach()
和array_filter()
进行搜索,然后添加新记录以进行调度。与:
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);
}
}
}
这里中的代码示例
https://stackoverflow.com/questions/72523121
复制相似问题