使用php在一个多维数组中的父子孙子数据

时间:2012-05-31 19:34:04

标签: php mysql codeigniter multidimensional-array parent-child

这是我的问题。 我的数据库中有3个表。收藏品,盒装和CD。 这些表具有以下父母子孙关系:

集合有一个或多个Boxsets

Boxset有一张或多张CD

我为每个表创建了以下列:

集合

  • collection_id - collection_title

Boxsets

  • boxset_id - boxset_title - collection_id

的CD

  • cd_id - cd_title - boxset_id

我正在尝试获取所有可用数据并在多维数组中构造这些数据,以便按如下方式显示我的数据: - 收集1 -Boxset1 --CD 1 --CD 2 -Boxset 2 --CD 1 ... - 选择2 ....

但是,如果不在'cds'表中添加“collection_id”字段,则无法在一个数组中获取所有数据。到目前为止,我的解决方案是创建两个数组(collections-boxsets数组和boxsets-cds数组),如下所示:

$collections = $this->collection_model->get_all_collections();
  foreach($collections->result_array() as $row){
   $arrayCollections[$row['collection_id']] = $row;
  }  
  $boxsets = $this->boxset_model->get_all_boxsets();
  foreach($boxsets->result_array() as $row){
   $arrayCollections[$row['collection_id']]['boxsets'][] = $row;
  }
  foreach($boxsets->result_array() as $row){
   $arrayBoxset[$row['boxset_id']] = $row;
  }  
  $cds = $this->cd_model->get_all_cds();
  foreach($cds->result_array() as $row){
   $arrayBoxset[$row['boxset_id']]['cds'][] = $row;
  }
  foreach($arrayCollections as $collections){
   echo '-'.$collections['collection_title'].'<br />'; 
   foreach($collections['boxsets'] as $boxset){
    echo '--'.$boxset['boxset_title'].'<br />';
    foreach($arrayBoxset[$boxset['boxset_id']]['cds'] as $cd){
     echo '---'.$cd['title'].'<br />';
    }
   }  
  } 

有任何优化建议吗?

0 个答案:

没有答案