Что ж, я вижу, что вы хотите собрать подмассивы в один большой массив, а затем разделить их на четыре части, из которых вы хотите выбрать минимальное и максимальное значение для отображения на вашей веб-странице ? Я бы сделал это следующим образом:
- Получить все значения подмассива и поместить их в один большой массив
- Сортировка большого массива
- Разделить большой массив на четыре сегмента
- Перебрать разбитый массив и извлечь минимальное и максимальное значения
- Отобразите их на своей странице.
Вот как может выглядеть код:
// Setting: Amount of checkboxes
$div = 4;
$a = array(
array("18:00:00", "19:00:00", "20:00:00", "21:00:00", "22:00:00"),
array("09:00:00", "10:00:00", "11:00:00", "12:00:00", "13:00:00", "14:00:00", "15:00:00", "16:00:00")
);
$a_tot = array_unique(array_merge($a[0], $a[1]));
$count = count($a_tot);
$num_per = ceil($count / $div);
sort($a_tot);
$a_new = array();
$i = 0;
while (!empty($a_tot[$i])) {
$a_new[] = array_slice($a_tot, $i, $num_per);
$i += $num_per;
}
$chk_opt = array();
for ($i=0; $i<$div; $i++) {
$chk_opt[] = sprintf("%s - %s", min($a_new[$i]), max($a_new[$i]));
}
unset ($a_tot, $count, $num_per, $a_new);
Выход:
array(4) {
[0]=> string(19) "09:00:00 - 12:00:00"
[1]=> string(19) "13:00:00 - 16:00:00"
[2]=> string(19) "18:00:00 - 21:00:00"
[3]=> string(19) "22:00:00 - 22:00:00"
}