Strictly speaking, 2022-12-26 is Week 53, not Week 0:
collect(CarbonPeriod::create('2022-12-26', '2023-01-27'))
->reject(fn($date) => $date->isWeekend()) // remove weekends
->map(fn($date) => ['week_number' => $date->week, 'date' => $date->format('Y-m-d')])
If you really want a 0 indexed array to represent the week number, you could groupBy the 'week_number' key and then re-key the result using the values method:
collect(CarbonPeriod::create('2022-12-26', '2023-01-27'))
->reject(fn($date) => $date->isWeekend()) // remove weekends
->map(fn($date) => ['week_number' => $date->week, 'date' => $date->format('Y-m-d')])
->groupBy('week_number')
->values();
This is now grouped data, so you will need a nested loop to output the table