Я бы хотел, чтобы мой массив сортировался по уникальному дню и показывал только одно значение дня один раз со всеми включенными для этого дня.показать результаты массива, отсортированные по уникальному дню
Желаемая Пример:
Неформальная
Понедельник: 2 вечера до 3 вечера, 3 вечера до 4 вечера, 4 вечера до 5 вечера
Вторник: 2 вечера до 3 вечера, 3 вечера до 4 вечера, 4 вечера до 5 вечера
Среда: 2PM до 3PM, 3PM до 4PM, 4P M к 5PM
четверг: 2 вечера до 3 вечера, 3 вечера до 4 вечера, 4PM к 5PM
В настоящее время я получаю это с днем итерацию каждый раз. Понедельник: 2 вечера до 3 вечера, понедельник с 3 вечера до 4 вечера, понедельник с 4 вечера до 5 вечера Вторник: 2 вечера до 3 вечера, вторник 3 вечера до 4 вечера, вторник 4 вечера до 5 вечера и так далее.
Вот мой массив:
["Informal"]=> array(12) {
[0]=> array(1) { ["Schedule"]=> array(4) { ["program"]=> string(8) "Informal" ["day"]=> string(6) "Monday" ["start_time"]=> string(4) "2 PM" ["end_time"]=> string(4) "3 PM" } }
[1]=> array(1) { ["Schedule"]=> array(4) { ["program"]=> string(8) "Informal" ["day"]=> string(6) "Monday" ["start_time"]=> string(4) "3 PM" ["end_time"]=> string(4) "4 PM" } }
[2]=> array(1) { ["Schedule"]=> array(4) { ["program"]=> string(8) "Informal" ["day"]=> string(6) "Monday" ["start_time"]=> string(4) "4 PM" ["end_time"]=> string(4) "5 PM" } }
[3]=> array(1) { ["Schedule"]=> array(4) { ["program"]=> string(8) "Informal" ["day"]=> string(7) "Tuesday" ["start_time"]=> string(4) "2 PM" ["end_time"]=> string(4) "3 PM" } }
[4]=> array(1) { ["Schedule"]=> array(4) { ["program"]=> string(8) "Informal" ["day"]=> string(7) "Tuesday" ["start_time"]=> string(4) "3 PM" ["end_time"]=> string(4) "4 PM" } }
[5]=> array(1) { ["Schedule"]=> array(4) { ["program"]=> string(8) "Informal" ["day"]=> string(7) "Tuesday" ["start_time"]=> string(4) "4 PM" ["end_time"]=> string(4) "5 PM" } }
[6]=> array(1) { ["Schedule"]=> array(4) { ["program"]=> string(8) "Informal" ["day"]=> string(9) "Wednesday" ["start_time"]=> string(4) "2 PM" ["end_time"]=> string(4) "3 PM" } }
[7]=> array(1) { ["Schedule"]=> array(4) { ["program"]=> string(8) "Informal" ["day"]=> string(9) "Wednesday" ["start_time"]=> string(4) "3 PM" ["end_time"]=> string(4) "4 PM" } }
[8]=> array(1) { ["Schedule"]=> array(4) { ["program"]=> string(8) "Informal" ["day"]=> string(9) "Wednesday" ["start_time"]=> string(4) "4 PM" ["end_time"]=> string(4) "5 PM" } }
[9]=> array(1) { ["Schedule"]=> array(4) { ["program"]=> string(8) "Informal" ["day"]=> string(8) "Thursday" ["start_time"]=> string(4) "2 PM" ["end_time"]=> string(4) "3 PM" } }
[10]=> array(1) { ["Schedule"]=> array(4) { ["program"]=> string(8) "Informal" ["day"]=> string(8) "Thursday" ["start_time"]=> string(4) "3 PM" ["end_time"]=> string(4) "4 PM" } }
[11]=> array(1) { ["Schedule"]=> array(4) { ["program"]=> string(8) "Informal" ["day"]=> string(8) "Thursday" ["start_time"]=> string(4) "4 PM" ["end_time"]=> string(4) "5 PM" } } }
возможно с этим массивом или мне нужно сделать, чтобы изменить свой SQL запрос? Я пробовал GROUP BY 'day', но это не сработало. Я также попытался вложить петлю foreach времени в пределах цикла foreach дня, который, как я думаю, является способом выхода, но я не понимаю его.
вот PHP/HTML без его вложенными
<h1>Schedules</h1>
<h2>Room 1</h2>
<?php
$array = array();
foreach ($data as $row) {
$data[$row['Schedule']['program']][] = $row;
}
?>
<?php foreach ($array as $program => $schedules) { ?>
<h3><?php echo $program; ?></h3>
<fieldset class="programs">
<!-- data rows -->
<?php foreach ($schedules as $key => $schedule) :
echo $schedule['Schedule']['day']. " : " .$schedule['Schedule']['start_time'];?> to <?php echo $schedule['Schedule']['end_time'] . " <br /> ";
endforeach; ?>
</fieldset>
Что ваш sql-запрос? в зависимости от структуры таблицы вы можете использовать GROUP_CONCAT для группировки запланированных часов для каждого дня в список, разделенный запятыми, который вы могли бы просто «взорвать» в php-коде. –