【发布时间】:2020-12-07 21:27:45
【问题描述】:
我正在编写一个脚本来列出这周餐厅的菜单。我需要列出特定日期的 4 种菜肴,并带有日期和日期名称的标题。
Monday 2020-12-07
- menu 1
- menu 2
- menu 3
- menu 4
Tuesday 2020-12-08
- menu 1
- menu 2
- menu 3
- menu 4
...
来自数据库的数组
$menu = Array
(
[0] => Array
(
[day] => 2020-12-07
[meal] => Vývar
)
[1] => Array
(
[day] => 2020-12-07
[meal] => šošovicová
)
...
我编写了类似的代码,但我不喜欢它。
for ($i = 0; $i <= count($menu); $i++) {
$date = $menu[$i]['day'];
$compare_date;
if ($date != $compare_date) {
echo "<tr>";
echo "<td>" . date('l', strtotime($date)) . "</td>";
echo "<td>" . $date . "</td>";
echo "</tr>";
$compare_date = $date;
foreach($menu as $id) {
if ($id['day'] === $compare_date) {
echo "<tr>";
echo "<td>" . $id['meal'] . "</td>";
echo "</tr>";
}
}
}
}
我需要重构方面的帮助。我认为这样一个简单的菜单列表可以用更少的代码行来完成,但我不知道该怎么做。我已经在那里坐了几个小时,我真的什么都想不出来。请指导我正确的方式。
【问题讨论】:
-
这已经是一个非常干净的解决方案了,考虑到数组的结构很笨拙,而且您必须回显 HTML 元素。
-
谢谢,我很感激。不幸的是,数组是 PDO fetchAll 函数的结果。但是,感谢@Taavi,我稍微更改了代码并保存了一个条件和 foreach 循环:)