嵌套php foreach循环

嵌套php foreach循环,php,Php,我有一个foreach循环,从以下位置获取信息: $eventarray[] = array( "month" => $cal_months[$event_month], "day1" => $event_day1, "title" => $title, "desc" =>

我有一个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中,如果它们在同一天

我“认为”我必须嵌套第二个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';

            }


    }

如果一天中有超过一天的时间,我如何将这些时间组合在一起?

为什么不尝试输入并解决问题呢。 即


实现这一点的简单方法不是使用嵌套的
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>';
    }
}
//这实际上是一个二维数组
$events_by_day=array();
//按天获取本月的活动和小组。
foreach($eventarray作为$value){
如果($value['month']==$thismonth){
//将此事件推送到$events_by_day[]数组中
$events_by_day[$value['day1']][]=$value;
}
}
//每天打印一次。
foreach($day=>$events\u,按天计算,即$day=>$events\u,即今天){
如果(计数($events_today)>0){
回声';
回显“$月$日”;
//获取今天的活动
foreach($events\u今天作为$event){
echo$event['title'];
echo$event['desc'];
echo$event['link'];
}
回声';
}
}

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

错误是什么样子的?给你一个好的答案可能会有用!
// 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>';
    }
}