这是我的问题。我的数据库中有 3 个表。收藏、盒装和 CD。这些表具有以下父子孙关系:
一个 Collection 有一个或多个 Boxset
Boxset 有一张或多张 CD
我为每个表创建了以下列:
收藏品
- collection_id - collection_title
盒装
- boxset_id - boxset_title - collection_id
光盘
- cd_id - cd_title - boxset_id
我正在尝试获取所有可用数据并将这些数据构造在多维数组中,以便按如下方式显示我的数据:-Collection 1 —Boxset1 —-CD 1 —-CD 2 —Boxset 2 —-CD 1 ... -Collections 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 />';
}
}
}
有什么建议可以优化吗?