2

PHP で DB からカテゴリの再帰的な親を取得するための while ループを使用して関数を作成しました。これは目的を果たしました。しかし、再帰関数でこれを行うにはどうすればよいか知りたいです(実際に知りたいです)。はいの場合、どのように?実行しているのは、categoroy_id を使用して親カテゴリの配列を返すことだけです。何か不明な点があればお知らせください。

public function get_recursive_parents($category_id){
        $categories = array();
        $res = $this->db->from('categories')->where('cat_id',$category_id)->get()->row_array();
        $cat_id = $res['parent_id'];
        $categories[] = $res;
        while($cat_id){
            $res = $this->db->from('categories')->where('cat_id',$cat_id)->get()->row_array();
            $categories[] = $res;
            $cat_id = $res['parent_id'];
        }
        return $categories;
    }
4

3 に答える 3

0

これを再帰関数に変換するには、次のように機能する必要があります(テストされていませんが、ロジックは類似している必要があります)。

public function get_recursive_parents($category_id){
        $categories = array();
        $res = $this->db->from('categories')->where('cat_id',$category_id)->get()->row_array();
        $cat_id = $res['parent_id'];
        $categories[] = $res;
        while($cat_id) {
            $categories[] = get_recursive_parents($cat_id);
        }
        return $categories;
    }
于 2013-02-13T12:41:36.423 に答える