1

我想从 1 个表中获取所有具有递归的 ID。我设法回显了这些变量,但是当我尝试将其放入数组时失败了。这是字符串版本:

public function get_numProducts($cid)
{
    $this->db->select('cat_id');
    $this->db->from('ci_categories');
    $this->db->where('cat_child',$cid);
    $q = $this->db->get();

    $result = $q->result();

    $i=0;
    $a="";
    foreach($result as $mainCategory)
    {
        $a .= $mainCategory->cat_id;
        $a .= $this->get_numProducts($mainCategory->cat_id);
    }

    return $a;

}

使用参数“4”调用此函数时,我得到字符串输出:89。这很好。但我想输出一个数组(4,8,9)。感谢帮助

编辑:

第二版

public function get_numProducts($cid)
{
    $this->db->select('cat_id');
    $this->db->from('ci_categories');
    $this->db->where('cat_child',$cid);
    $q = $this->db->get();

    $result = $q->row();
    $n = $q->num_rows();

    if ($n > 0)
    {
        $array[] = $result->cat_id." ";
        $array[] = $this->get_numProducts($result->cat_id);
    }


    return $array;

}

此版本返回数组,但是是多维的:

array (size=2)
  0 => string '8 ' (length=2)
  1 => 
    array (size=2)
      0 => string '9 ' (length=2)
      1 => null
4

1 回答 1

1

您必须将数组作为对函数的每次迭代的引用..

public function get_numProducts($cid, &$array)

..

$array[] = $cid;

if ($n > 0) $this->get_numProducts($result->cat_id, $array);
于 2013-08-12T15:07:35.910 回答