簡體   English   中英

創建從數據庫中提取的多維數據數組

[英]Creating a multidimensional array of data pulled from database

我正在使用codeIgniter。 我需要創建數據庫命名學院的數據的多維數組。 該數據庫有3列:id,OfID和name。 OfID列包含該大學的家長的ID。 對於沒有父母的大學,OfID為0。

該數組應包含以OfID = 0作為一維元素的大學的名稱,ID和OfID。 對於擁有OfID!= 0的學院,應將其ID為OfID的學院作為第二維數組(依此類推)。

我以為可以遞歸執行此操作,但是我無法完成此操作。 我知道這樣做有很多錯誤,請幫忙。

模型類如下:(控制器調用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;
}

}

嘗試這樣的事情:

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

無論如何,我發現自己進行遞歸的最好方法是采用一些非常簡單的遞歸函數,並且您了解遞歸函數的各個方面,並逐步構建它。 “逐步”是指您首先不傳遞所有值,而是將它們打印出來,只是為了了解您所獲得的內容,地點和方式,然后嘗試傳遞它們。 如果您不了解遞歸函數的工作方式,則它會損害大腦。 您的想法背后的想法是,每當您偶然發現一所設有兒童學院的大學時,都要得到一個陣列。 我可以看到您做對了,只是按照我之前的說明嘗試做一個,逐步進行,您會發現其中的竅門。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM