在foreach循环中组合2个数组

时间:2017-02-05 12:40:12

标签: php arrays

$user = $this->get_user_or_redirect();
        $calendars = $user->get_calendars1();
        $events = [];
        foreach ($calendars as $calendar) 
        {
            $events += $calendar->get_events();

        }

$calendars是一个包含特定用户所有日历的数组。 每个日历都有许多活动。函数get_event()返回每个日历的事件数组。

我想要做的是将事件数组(特定于日历)附加到特定于用户的空事件数组($events = [])。 我使用了调试器,似乎foreach循环中的代码不起作用,但我不知道为什么。

4 个答案:

答案 0 :(得分:0)

按如下方式更改循环,将数据附加到数组。

foreach ($calendars as $calendar) 
{
      $events[] = $calendar->get_events();

}

答案 1 :(得分:0)

您应该使用[]为每个$ calendar

添加$ event实例
$user = $this->get_user_or_redirect();
    $calendars = $user->get_calendars1();
    $events = [];
    foreach ($calendars as $calendar) 
    {
        $events[] = $calendar->get_events();

    }

答案 2 :(得分:0)

更换

$events += $calendar->get_events();

通过

$events[] = $calendar->get_events();

的工作。

答案 3 :(得分:0)

您希望使用

保存事件数组
  1. 特定于日历
  2. 特定于用户
  3. 你需要像这样创建一个多维数组。

    foreach ($calendars as $calendar) 
    {
        $events[$user][$calendar][] = $calendar->get_events();
    
    }
    

    通过这种方式,您可以跟踪所需的事件。