使用SQL结果构建多维数组的最简单方法是什么?

时间:2017-09-29 14:09:22

标签: php mysql sql

我目前正在构建网络规划,我想在期间显示中显示一些数据。

我有一个PHP文件,我在13个表上创建我的SQL请求并获取所有结果(我使用PDO :: FETCH_ASSOC),然后我必须循环我的结果来构建我想要的数组。

问题是我需要构建一个包含大量数据的复杂数组。以下是我想要达到的结果:

$result = array(
  $place_1 => array(
    'data_place' => array(
      'id' => ...,
      'name' => ...,
      // etc.
    ),
    'data_target' => array(
       $target_type_1 => array(
         $name_1 => ...,
         $name_2 => ...,
         // etc.
       ),
       $target_type_2 => array ( ... ),
       // etc.
    ),
    'data_isOpen' => array(
       $day_1 => array(
         $hour_begin => ...,
         $hour_end => ...
       ),
       $day_2 => array ( ... ),
       // etc.
    ),
    'data_box' => array(
      // same kind of stuff with more dimension
    )
  ),
  ...
  $place_n = array(
    // same
  )
);

当我执行我的请求时,我得到的东西就像3000数组一样,包含我需要的所有数据,但我在数据库中只有29个位置,所以有很多重复......

$result = array(
  0 => array(
    "id" => ...,
    "name" => ...,
    // the list of all fields I need in my big array
  ),
  ...
  n => array(
    // same 
  )
);

我几乎设法用一些" foreach"来实现我想要的结果。和头痛,但这是我的问题:

是否可以构建SQL请求并按我的意愿获取结果?我的意思是,我可以将所有结果分组为" id_place"例如,但没有丢失信息?如果可能的话,我们可以多次这样做吗?

这个想法是为每个地方得到一个数组的结果(所以29而不是3000),然后对于每个"地点数组",例如" hour_begin"和" hour_end"通过" opening_day"等...

很抱歉,如果它重复,我没有看到任何积极的问题,所以我再试一次!

0 个答案:

没有答案