簡體   English   中英

嵌套的PHP foreach循環

[英]Nested php foreach loop

我有一個foreach循環從這里獲取它的信息:

        $eventarray[] = array(          
            "month" => $cal_months[$event_month],           
            "day1" => $event_day1,             
            "title" => $title,            
            "desc" => html_entity_decode($article),
            "month_link" =>   strtolower($event_month),
            "link" => $event_link      
        ); 

對於數組的每次迭代,它都會彈出一個事件div,該事件div包含標題,描述以及指向實際事件頁面的鏈接。 問題是,如果同一天有兩個事件,那么我在當天的每個事件中都會得到兩個單獨的div。 我想做的是將事件在同一天放入同一div中。

我“認為”我必須嵌套第二個foreach循環,但是這樣做時出錯了。

這是我正在嘗試的方法,我知道這是錯誤的,但我遇到了麻煩:

foreach($eventarray as $value){

        if($value['month'] == $thismonth){

            $day[] = $value['day1'];

            echo $value['title'];
            echo $value['desc'];
            echo $value['link'];
            foreach($day as $day_value){
                echo 'test';

            }


    }

如果一天中有不止一天,我如何才能在一起?

您為什么不嘗試並解決輸入問題。

     $eventarray[$event_day1][] = array(          
        "month" => $cal_months[$event_month],           
        "day1" => $event_day1,             
        "title" => $title,            
        "desc" => html_entity_decode($article),
        "month_link" =>   strtolower($event_month),
        "link" => $event_link      
    ); 

執行此操作的簡單方法不是使用嵌套的foreach ,而是使用兩個foreach循環,一個接一個地循環。 在第一個中,將當天的事件放入一個新數組,在第二個中,打印該數組。

// This will actually be a 2-dimensional array
$events_by_day = array();

// Get this month's events and group by day.
foreach($eventarray as $value){
    if($value['month'] == $thismonth){
        // Push this event into the $events_by_day[<DAY>] array
        $events_by_day[$value['day1']][] = $value;
    }
}

// For each day, print it.
foreach($events_by_day as $day => $events_today){
    if (count($events_today) > 0){
        echo '<div>';
        echo "$month $day";
        // Get today's events
        foreach($events_today as $event){
            echo $event['title'];
            echo $event['desc'];
            echo $event['link'];
        }
        echo '</div>';
    }
}

它需要一些格式,但是您明白了。

暫無
暫無

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

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