Я пытаюсь заполнить массив массивов, где room_id следует объединить в один поддиапазон, а не разделять, как в настоящее время. Вот мой код:Объединить подмассивы массива с одним и тем же ключом
$query = "SELECT res_id, room_id, guest_id, check_in_date, check_out_date FROM reservation ";
$result = mysqli_query($link, $query) or die (mysqli_error($link));
$rooms = array();
while ($row = mysqli_fetch_assoc($result)) {
$rooms[] = $row;
}
$array_date = array();
foreach ($rooms as $room) {
$array_date[] = date_range($room['room_id'], $room['check_in_date'], $room['check_out_date']);
}
function date_range($room_id, $first, $last, $step = '+1 day', $output_format = 'Y-m-d') {
$room_date = array();
$dates = array();
$current = strtotime($first);
$last = strtotime($last);
while($current <= $last) {
$dates[] = date($output_format, $current);
$current = strtotime($step, $current);
}
$room_date[$room_id] = $dates;
return $room_date;
}
Вот результат с var_dump:
Array
(
[0] => Array
(
[1] => Array
(
[0] => 2015-04-08
[1] => 2015-04-09
[2] => 2015-04-10
)
)
[1] => Array
(
[1] => Array
(
[0] => 2015-04-11
[1] => 2015-04-12
[2] => 2015-04-13
)
)
[2] => Array
(
[2] => Array
(
[0] => 2015-04-08
[1] => 2015-04-09
[2] => 2015-04-10
[3] => 2015-04-11
[4] => 2015-04-12
[5] => 2015-04-13
)
)
То, что я действительно хочу это (то же самое room_id объединены в одном массиве):
Array
(
[0] => Array
(
[1] => Array
(
[0] => 2015-04-08
[1] => 2015-04-09
[2] => 2015-04-10
[3] => 2015-04-11
[4] => 2015-04-12
[5] => 2015-04-13
)
)
[2] => Array
(
[2] => Array
(
[0] => 2015-04-08
[1] => 2015-04-09
[2] => 2015-04-10
[3] => 2015-04-11
[4] => 2015-04-12
[5] => 2015-04-13
)
)
)
Я полностью закончились идеи. Как объединить массивы с одним и тем же номером?
Я отредактировал это сообщение сильно, так как у моего первого решения были некоторые ошибки. –
Это именно то, что мне нужно, спасибо вам большое. –
Очень приветствуется. Удачи. :) –