簡體   English   中英

如果$ i == 1,則在foreach循環中的php回顯“ ok”,否則回顯“ ok”一次並繼續

[英]Php inside foreach loop if $i == 1 echo “ok”, else echo “ok” JUST one time and continue

自從我上次在這里提問以來已經有一段時間了(5年)。

我需要幫助,我正在開發活動日歷,因此陷入困境。 到目前為止,我想擁有事件標頭和事件主體,但是如果每天有多個事件,我只想要一個標頭。 因此,今天我在21點共進晚餐,我的活動應該在11月23日星期五和21點共進晚餐。 太好了,我可以這樣做,但是如果我在晚餐前19點開會,該怎么辦? 我只想要一次相同的標頭... 11月23日,星期五,但有兩個屍體...

謝謝!

我的一段代碼

foreach($eventos[$data_do_dia] as $evento) {
    $i = count($eventos[$data_do_dia]);
    if($i == 1) {
       $agenda .= " dia ".date("d-m-Y",strtotime($evento['dia']))."</b>";
       add the event
    } else {
        repeat the same but just one time
        $agenda .= " dia ".date("d-m-Y",strtotime($evento['dia']))."</b>";

        add event one
        add event two
        ...     
    }
}

我已經更改了循環,因此沒有重復的代碼,這基本上意味着,如果只有一個事件,則它將轉換為數組,並假設isset($evento[0])將不會出現。子數組,它將一個條目包裝到新數組中。

然后,它遍歷數組並創建帶有日期/時間/詳細信息的字符串。 您可能會想要更改格式,但是原理是相同的...

$agenda = "";
foreach($eventos as $evento) {
    if ( !isset($evento[0]) )    {
        $evento = [$evento];
    }
    $agenda .= " dia ".date("d-m-Y",strtotime($evento[0]['dia'])).PHP_EOL;
    foreach ( $evento as $time )    {
        $agenda .= " time ".$time['hora']." ".
            $time['titulo']." ".$time['evento'].PHP_EOL;
    }
}
echo $agenda;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM