簡體   English   中英

遞歸函數創建數組

[英]Recursive Function To Create Array

我使用kohana框架,並且嘗試對遞歸函數進行編碼以創建類別樹。

我的類別表

id      int(11)     NO  PRI     NULL    auto_increment
name    varchar(50)     NO      NULL     
parent_id   int(11)     NO      NULL     
projects_count  int(11)     NO      NULL     

我的例子不起作用

public static function category_list($parent_id = 0)
{
    $result =  Database::instance()->query('
        SELECT name, projects_count 
        FROM project_categories
        WHERE parent_id = ?', 
        array($parent_id)
    );

    $project_categories = array();
    foreach($result as $row)
    {
        $project_categories[] = $row;

        Project_Categories_Model::factory()->category_list($parent_id + 1);
    }

    return $project_categories;
}

使用這種分層數據實現非常不理想,因為要獲取每個子類別,您需要對數據庫進行單獨的查詢。 像這里一樣,您要創建遞歸函數。

如果仍然可以更改表體系結構,請選中“ 在MySQL中管理層次數據”

本文介紹了一種解決方案,即如何在一次查詢中獲取整個層次結構,因此不需要遞歸函數。

暫無
暫無

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

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