ting 发表于 2010-6-3 15:30:27

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

具体数组中添加数组代码如下:
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 ( => Array ( => 1 => 房产信息 ) => Array ( => 2 => 车辆买卖与服务 ) => Array ( => 3 => 交友征婚 ) => Array ( => 1 => 房产信息 => Array ( => Array ( => 1 => 1 => 房屋出租 ) => Array ( => 2 => 1 => 房屋合租 ) => Array ( => 3 => 1 => 房屋求租 ) ) ) => Array ( => 2 => 车辆买卖与服务 => Array ( ) ) => Array ( => 3 => 交友征婚 => 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

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

该问题想了好久了。。不知道如何解决。。以前总是避开该问题。。唉。。总算是又遇到了。。。

ting 发表于 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>

Hex 发表于 2010-6-3 16:38:19

if($cate['subcates']!=null){
改成
if(isset($cate['subcates'])){

ting 发表于 2010-6-3 17:03:05

谢谢哈。。。

spt119 发表于 2010-6-5 13:21:35

验证空值,empty()函数也非常节省,并速度很快。

ting 发表于 2010-6-12 10:16:55

验证空值,empty()函数也非常节省,并速度很快。
spt119 发表于 2010-6-5 13:21 http://codeigniter.org.cn/forums/images/common/back.gif
不错。。谢谢啊。。。
页: [1]
查看完整版本: php想在一个集合中再添加集合数据然后输出,疑问??