用户
 找回密码
 入住 CI 中国社区
搜索
查看: 3470|回复: 5
收起左侧

[HELP] php想在一个集合中再添加集合数据然后输出,疑问??

[复制链接]
发表于 2010-6-3 15:30:27 | 显示全部楼层 |阅读模式
具体数组中添加数组代码如下:
function city($cityid){

                $city = $this->db->query("select * from info_city where id = $cityid");
                $city = $city->row_array();

                $syset = new sysSetting();
                $remstr = $syset->setRecommand_citySuffix($city['city']);

                $cates = $this->db->query("select * from info_category");
                $cates = $cates->result_array();

                foreach ($cates as $cate)
                {
                        $cateid = $cate['id'];
                        $subcates = $this->db->query("select * from info_subcate where cateid = $cateid ");
                        $cate['subcates']=$subcates->result_array();
                        array_push($cates,$cate);
                       
                }

                $data['cates']=$cates;

                print_r($cates);
                $data['title']=$remstr;
                $data['kwd']=$remstr;
                $data['des']=$remstr;

                $this->load->view('inc/info/header',$data);
                $this->load->view('info/city');
                $this->load->view('inc/footer');
        }

打印数据为:

Array ( [0] => Array ( [id] => 1 [category] => 房产信息 ) [1] => Array ( [id] => 2 [category] => 车辆买卖与服务 ) [2] => Array ( [id] => 3 [category] => 交友征婚 ) [3] => Array ( [id] => 1 [category] => 房产信息 [subcates] => Array ( [0] => Array ( [id] => 1 [cateid] => 1 [subcate] => 房屋出租 ) [1] => Array ( [id] => 2 [cateid] => 1 [subcate] => 房屋合租 ) [2] => Array ( [id] => 3 [cateid] => 1 [subcate] => 房屋求租 ) ) ) [4] => Array ( [id] => 2 [category] => 车辆买卖与服务 [subcates] => Array ( ) ) [5] => Array ( [id] => 3 [category] => 交友征婚 [subcates] => Array ( ) ) )

页面的输出:

<tr>
        <td class="tb_right"><?php foreach($cates as $cate):?>
        <div class="ct_cate">
        <div class="title">
        <ul>
                <li class="lbg"></li>
                <li class="txt"><?php $cate['category']?></li>
                <li class="rbg"></li>
        </ul>
        </div>
        <?php
        if($cate['subcates']!=null){
                ?>
        <ul class="listul">


        <?php foreach($cate['subcates'] as $subcate):?>

                <li><?php $subcate['subcate']?></li>

                <?php endforeach;?>
        </ul>
        <?php
        }

        ?></div>
        <?php endforeach;?></td>
        <td class="tb_left"></td>
</tr>


出现的问题:

Severity: Notice

Message: Undefined index: subcates

Filename: info/city.php

Line Number: 12

请大家帮我看一下哈。。。。

该问题想了好久了。。不知道如何解决。。以前总是避开该问题。。唉。。总算是又遇到了。。。
 楼主| 发表于 2010-6-3 16:36:43 | 显示全部楼层
问题解决了。。谢谢大家哈。。

下面是具体的代码请帮我看一下。。提一下优化的意见。。谢谢。。粗略写成。。如果可以优化。。大家多提意见啊。。。哈。。。


function city($cityid){

                $city = $this->db->query("select * from info_city where id = $cityid");
                $city = $city->row_array();

                $syset = new sysSetting();
                $remstr = $syset->setRecommand_citySuffix($city['city']);
               
                $cates = $this->db->query("select * from info_category");
                $cates = $cates->result_array();

                $cats = array();
                foreach ($cates as $cate)
                {
                        $cateid = $cate['id'];
                        $subcates = $this->db->query("select * from info_subcate where cateid = $cateid ");
                        $cate['subcates']=$subcates->result_array();
                        array_push($cats,$cate);
//                        print_r($cate);
                }

                $data['cates']=$cats;

                print_r($cats);
               
                $data['title']=$remstr;
                $data['kwd']=$remstr;
                $data['des']=$remstr;

                $this->load->view('inc/info/header',$data);
                $this->load->view('info/city');
                $this->load->view('inc/footer');
        }

页面输出代码:
<tr>
        <td class="tb_right" valign="top">
        <?php foreach($cates as $cate):?>
        <div class="ct_cate">
        <div class="title">
        <ul>
                <li class="lbg"></li>
                <li class="txt"><?php echo $cate['category']?></li>
                <li class="rbg"></li>
        </ul>
        </div>
        <?php
        if($cate['subcates']!=null){
                ?>
        <ul class="listul">


        <?php foreach($cate['subcates'] as $subcate):?>

                <li><?php echo $subcate['subcate']?></li>

                <?php endforeach;?>
        <?php
       
        ?>
        </ul>
        <?php
        }

        ?>
        </div>
        <?php endforeach;?>
       
        </td>
        <td class="tb_left"></td>
</tr>
发表于 2010-6-3 16:38:19 | 显示全部楼层
if($cate['subcates']!=null){
改成
if(isset($cate['subcates'])){
 楼主| 发表于 2010-6-3 17:03:05 | 显示全部楼层
谢谢哈。。。
发表于 2010-6-5 13:21:35 | 显示全部楼层
验证空值,empty()函数也非常节省,并速度很快。
 楼主| 发表于 2010-6-12 10:16:55 | 显示全部楼层
验证空值,empty()函数也非常节省,并速度很快。
spt119 发表于 2010-6-5 13:21

不错。。谢谢啊。。。

本版积分规则