1

我正在尝试建立一个旅行行程系统。用户选择旅行日期,然后可以将项目添加到每一天。

我有一个日期数组,以以下格式存储在会话中:

array(
    (int) 0 => '2012-08-25',
    (int) 1 => '2012-08-26',
    (int) 2 => '2012-08-27'
)

然后他们将选择景点,我希望以以下格式将其存储在数组中:

array(
(int) 0 => array(
    'Attraction' => array(
        'attraction_id' =>'1',
        'name' => 'Place One',

    )
),
(int) 1 => array(
    'Attraction' => array(
        'attraction_id' => '2',
        'name' => 'Place Two',

    )
),

我希望能够输出:

  • 2012-08-25
    • 一号位
    • 地方二
  • 2012-08-26
    • 这里还没有!
  • 2012-08-27
    • 这里还没有!

因此,如果有意义的话,第一个数组的每个项目都包含一个项目数组。我正在努力将数组的键与days数组相关联的逻辑items

我看了看,array_merge但这似乎没有做我需要的。

有没有简单的方法来实现这一目标?

4

1 回答 1

1

这段代码完全符合您的要求。不幸的是,我担心你的问题并不能反映你给出的例子。使用键链接数据将导致 1-1 关系,而您似乎需要 1-n。您应该在景点数组中有一个外键字段,例如 date_id。

$array= array();

foreach($dates as $date_key=>$date){
   $array[$date]=array();
   foreach($attractions as $attraction_key=>$attraction){
        if($date_key==$attraction_key){
           $array[$date][]=$attraction['Attraction']['name'];
         }   
     }
}
于 2012-08-25T17:12:26.267 回答