I can not write many word to describle my problem so I post code here and say what I want, please help me get the result
I have an input:
$arr = [
['id' => '1', 'dt' => '2017-12-30', 'week' => '', 'real_week' => '', 'date_name' => ''],
['id' => '2', 'dt' => '2017-12-31', 'week' => '', 'real_week' => '', 'date_name' => ''],
['id' => '3', 'dt' => '2018-01-01', 'week' => '', 'real_week' => '', 'date_name' => ''],
['id' => '4', 'dt' => '2018-01-02', 'week' => '', 'real_week' => '', 'date_name' => ''],
];
week key in array will increment follow 1, 2, 3, 4 … with days are the same week, I try
$arr = [
['id' => '1', 'dt' => '2017-12-30', 'week' => '', 'real_week' => '', 'date_name' => ''],
['id' => '2', 'dt' => '2017-12-31', 'week' => '', 'real_week' => '', 'date_name' => ''],
['id' => '3', 'dt' => '2018-01-01', 'week' => '', 'real_week' => '', 'date_name' => ''],
['id' => '4', 'dt' => '2018-01-02', 'week' => '', 'real_week' => '', 'date_name' => ''],
];
$first_wk = new DateTime($arr[0]['dt']);
$first_wk = $first_wk->format('W');
foreach ($arr as $i => $item)
{
$dt = new DateTime($item['dt']);
$arr[$i]['real_week'] = $dt->format('W');
$arr[$i]['week'] = $dt->format('W') - $first_wk + 1;
}
but I get wrong result
$arr = [
['id' => '1', 'dt' => '2017-12-30', 'week' => '1', 'real_week' => '', 'date_name' => ''],
['id' => '2', 'dt' => '2017-12-31', 'week' => '1', 'real_week' => '', 'date_name' => ''],
['id' => '3', 'dt' => '2018-01-01', 'week' => '-50', 'real_week' => '', 'date_name' => ''],
['id' => '4', 'dt' => '2018-01-02', 'week' => '-50', 'real_week' => '', 'date_name' => ''],
];
the result I want to get
$arr = [
['id' => '1', 'dt' => '2017-12-30', 'week' => '1', 'real_week' => '', 'date_name' => ''],
['id' => '2', 'dt' => '2017-12-31', 'week' => '1', 'real_week' => '', 'date_name' => ''],
['id' => '3', 'dt' => '2018-01-01', 'week' => '2', 'real_week' => '', 'date_name' => ''],
['id' => '4', 'dt' => '2018-01-02', 'week' => '2', 'real_week' => '', 'date_name' => ''],
];
when the years is the same it’s oke but different years it’s wrong, please help me!