我想从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;
}
当用param“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
答案 0 :(得分:1)
您必须将数组传递给函数的每次迭代。
public function get_numProducts($cid, &$array)
...
$array[] = $cid;
if ($n > 0) $this->get_numProducts($result->cat_id, $array);