CodeIgniter在数据库查询中不断返回一个空数组

时间:2013-11-02 21:58:00

标签: php codeigniter

我有一个二维数组,其中包含有关parent-cateogries(parent=1)的信息。以下是此数组的print_r()

 Array
(
    [0] => Array
        (
            [id] => 2
            [title] => parent2
            [content] => this is an example
            [avator] => 
            [thumnail] => 
            [parent] => 1
            [parent_id] => 8
        )

    [1] => Array
        (
            [id] => 3
            [title] => THISPARENT
            [content] => A NOTE
            [avator] => 
            [thumnail] => 
            [parent] => 1
            [parent_id] => 12
        )

)

在这个阵列中我有两个父母。其中只有一个已经在数据库表中有一个子节点,所以当我在数据库中搜索一个子节点时,parent_id应该是两个中的一个,逻辑结果应该是一个包含一个子类别信息的数组,而它返回两个数组,其中一个是空的。

我使用上面的loop使用上述父级别的ID搜索数据库:

  for($i=0; $i<count($cats); $i++)
        {
            $this->db->where("parent_id", $cats[$i]['id']);
            $res = $this->db->get("category");  
            $x[$i] = $res->result_array(); 
        }

现在,我收到的结果是:

                    Array
(
    [0] => Array
        (
        )

    [1] => Array
        (
            [0] => Array
                (
                    [id] => 1
                    [title] => child
                    [content] => childparent it is
                    [avator] => 
                    [thumnail] => 
                    [parent] => 0
                    [parent_id] => 3
                )

        )

)

虽然不应该有一个空的零索引数组,但我只希望在数组上接收我已经作为第二个索引,第一个空!为什么呢?

提前致谢

1 个答案:

答案 0 :(得分:0)

由于

,您正在接收零索引数组
$x[$i] = $res->result_array(); 

尝试将其更改为

$results = $res->result_array();
if (is_array($results) && count($results)>0) {
  $x[$i] = $results; 
}

然后它应该跳过零索引和所有空数组。