创建从数据库中提取的多维数据数组

时间:2012-07-01 18:39:22

标签: php codeigniter multidimensional-array

我正在使用codeIgniter。我需要从DB nammed大学创建一个多维数据数组。该数据库有3列:id,OfID和name。 OfID列包含该学院的父母的ID。对于没有任何父母的学院,OfID为0。

数组应包含OfID = 0作为第一维元素的大学的名称,ID和OfID。对于有OfID!= 0的大学应该作为第二个(等等)维度数组,作为OfID所拥有的ID的大学。

我想以递归方式做到这一点,但我无法完成此操作。我知道这有很多错误请帮忙。

模型类如下:(控制器调用meth()函数)

class Model extends CI_Model
{
var $return_this=array();
function meth()
{       
    $loop_id=0;
    getit($loop_id);
    var_dump($return_this);
}
function getit($loop_id)
{
    $index=0;
    $query = $this->db->query("select * from college where OfID=$loop_id ORDER BY `OfID` ASC;");
    if ($query->num_rows() > 0)
    {
        foreach ($query->result() as $row)
        {
            $pass=$row->id;
            $temp=getit($pass);
            if($temp==0)
            $return_this[$loop_id]= $query->result();
        }
    }
    else return 0;
}

}

1 个答案:

答案 0 :(得分:1)

尝试这样的事情:

$rows = array();
foreach ($query->result() as $row)
    {
        $pass=$row->id;
        $rows[] = getit($pass);
    }
return $rows;

在任何情况下,我发现自己做递归的最好方法是采用一些非常简单的递归函数,你知道它的每个方面,并逐步构建它。通过“一步一步”,我的意思是,首先你不会传递所有的值,而是将它们打印出来,只是为了看看你得到了什么,在哪里以及如何获得,然后尝试传递它们。如果你不理解它是如何工作的,那么像这样的递归函数会损害大脑。 你的想法背后的想法是,每当你偶然发现一所拥有儿童学院的大学时,就会得到一个数组。我可以看到你做对了,就像我之前所说的那样尝试制作这个 - 一步一步你会得到它。