我有一个如下所示的数组
Array
(
[0] => Array
(
[id] => 9
[needed_at] => 2023-02-26 03:31:04
[ended_at] => 2023-02-26 04:31:04
[add] => 20
)
[1] => Array
(
[id] => 6
[needed_at] => 2023-02-26 04:51:04
[ended_at] => 2023-02-26 05:51:04
[add] => 30
)
[2] => Array
(
[id] => 7
[needed_at] => 2023-02-26 09:21:04
[ended_at] => 2023-02-26 10:21:04
[add] => 30
)
)
现在在一个循环中,我想修改0
索引中的ended_at
,然后使用这个修改后的ended_at
来替换1
索引中的needed_at
.在这种方式下,还想用1
个索引的修改后的ended_at
等替换2
个索引
我试过的是
foreach($jobs as $k => $j){
$s = $k+1;
$date = new \DateTimeImmutable($j->ended_at);
$add = $j->add;
$date_new = $date->modify('+'.$add.' minutes');
$needed_at = $date_new->format('Y-m-d H:i:s');
$data['needed_at'] = $needed_at;
$date2 = new \DateTimeImmutable($needed_at);
$ended_at = $date2->modify('+60 minutes');
$data['ended_at'] = $ended_at->format('Y-m-d H:i:s');
$d[]=[
'id' => $jobs[$s]->id,
'needed_at' => $needed_at,
'ended_at' => $data['ended_at'],
'add' => $add
];
}
这不管用.是否可以将第一次迭代修改后的数据用于第二次迭代?需要帮助
我的预期结果是
Array
(
[0] => Array
(
[id] => 9
[needed_at] => 2023-02-26 03:31:04
[ended_at] => 2023-02-26 04:31:04
[add] => 20
)
[1] => Array
(
[id] => 6
[needed_at] => 2023-02-26 04:51:04
[ended_at] => 2023-02-26 05:51:04
[add] => 30
)
[2] => Array
(
[id] => 7
[needed_at] => 2023-02-26 06:21:04
[ended_at] => 2023-02-26 07:21:04
[add] => 30
)
)