1

我有一个二维数组,其中包含有关父类别 ( 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 应该是两者之一,逻辑结果应该是一个包含一个子类别信息的数组,而它返回两个数组,其中一个是空的。

我使用以下父类别的 ID 搜索数据库loop

  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
                )

        )

)

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

提前致谢

4

1 回答 1

0

您收到零索引数组是因为

$x[$i] = $res->result_array(); 

尝试将其更改为

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

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

于 2013-11-02T22:06:57.723 回答