我确信这很容易做到,我只是这个级别的PHP编程的新手。另外,请原谅我的术语,我不知道事情的正式名称,所以如果有些事情不清楚,请告诉我。
好吧,所以我正在用PHP构建一个日历,而且我已经完成了所有工作,除了我每天只能显示一个事件。我意识到这是因为我将事件数据存储为数组中特定键的子键。
基本上我在日历中创建每天作为数组中的键。例如:
$events["1"] = "first day of the month";
$events["2"] = "second day of the month";
$events["3"] = "third day of the month";
...
然后在每个人的内心,我正在做这样的事情:
$events["1"]["title"] = "title for the event on the first day of the month";
$events["1"]["time"] = "time for the event on the first day of the month";
$events["2"]["title"] = "title for the event on the second day of the month";
$events["2"]["time"] = "time for the event on the second day of the month";
...
此设置意味着我每天只能存储一个事件。如果我在哪里尝试设置多个事件,则每个后续事件都将覆盖前一个事件的值。
所以我想要做的是将每个事件设置为该键中的数组。例如:
$events["1"][0] = array("title" => "first title for the event on the first day of the month", "time" => "first time for the event on the first day of the month");
$events["1"][1] = array("title" => "second title for the event on the first day of the month", "time" => "second time for the event on the first day of the month");
我可以使用array_push()
添加每个事件,但我不知道如何为带有键的数组执行此操作。
最后,一旦我将所有内容妥善存储,我需要以某种方式输出每个事件,那么我将如何循环每天的每个子数组呢?现在我正在做:
foreach ($events as $event) {
if ($event["title"] != "") {
echo "<strong>" . $event["title"] . "</strong>";
}
}
我想我需要在foreach
内foreach
,但我不太确定如何设置它。
感谢您的帮助。再一次,我确信这很容易理解,我只是一个程序员。
PS:这是为WordPress网站构建的,如果这有所不同。我知道有http://wordpress.stackexchange.com,但我认为因为这是比WordPress特定的更常见的编程问题,所以这是更合适的网站。
答案 0 :(得分:1)
如果您打算使用文本键,最好做以下事情:
$events["1"]["title"] = "title for the event on the first day of the month";
$events["1"]["time"] = "time for the event on the first day of the month";
$events["1"]["events"] = array();
以便$ events [n] [&#39; events&#39;]是当天所有活动的数组。
你不需要array_push。您可以通过以下方式添加活动:
$events["1"]["events"][] = new event
然后您将通过以下方式显示事件:
foreach ($events as $event) {
if ($event["title"] != "") {
echo "<strong>" . $event["title"] . "</strong>";
}
foreach ($event['events'] as $evt) {
// display the event as you want
}
}