Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 将未知数量的数据库字段前置到数组_Arrays_Codeigniter - Fatal编程技术网

Arrays 将未知数量的数据库字段前置到数组

Arrays 将未知数量的数据库字段前置到数组,arrays,codeigniter,Arrays,Codeigniter,我有一个具有以下结构的数据库 user_id | cat_name | cat_slug | parent_id ------------------------------------------- Tools | tools | 0 | 2 |Chainsaws |chainsaws | 1 等 我的最终目标是基本上有一个数组,它有一个显示类别路径的面包屑线索,它可以有任何地方,从没有父类别到5个类别 我能得到我想要的。。一路上有一些错误。我一直

我有一个具有以下结构的数据库

user_id | cat_name | cat_slug | parent_id
-------------------------------------------
Tools   | tools    |     0    |
2       |Chainsaws |chainsaws |     1

我的最终目标是基本上有一个数组,它有一个显示类别路径的面包屑线索,它可以有任何地方,从没有父类别到5个类别

我能得到我想要的。。一路上有一些错误。我一直在尝试获取非对象错误的属性。尽管我所有其他返回值的尝试都失败了

我的解决方案在错误下面输出我的半期望效果,并带有以>为符号的额外类别中断。我只是希望有人能帮我清理一下,因为我正处在一个转折点,在做了几个小时没有解决办法之后

模型


您想要做的是构建一个递归函数。 例如:

function factorial($number) 
{ 
    if ($number < 2) 
    { 
        return 1; 
    } 
    else 
    { 
        return ($number * factorial($number-1)); 
    } 
}

在拉扯头发和喝了几瓶烈性朗姆酒之后,我终于明白了这一点。我在使用codeigniter方面还是比较新手,所以我的解决方案可能有一些不必要的步骤,但我觉得有义务分享我学到的东西。这是我的全部功能

function get_parent_trail($parent_id){

    if ( $parent_id != 0 && $parent_id){

        $parent_trail = array();
        $inc = 0;

        for( $i = 1; $i <= 4; $i ++ ) {

            if ( $parent_id != 0 && $parent_id){
                $this -> db -> select ( '*' );
                $this -> db -> from ( 'categories' );
                $this -> db -> where ( 'cat_id' , $parent_id );
                $query = $this -> db -> get();
                $row = $query -> row_array();

                array_unshift( $parent_trail, $row['cat_name'] ) ;

                $parent_id = $row['parents'];
            } else {
                $inc++;
            }

        }

        $popOff = array_pop($parent_trail);

        if ($inc > 2 ){
            echo "<span style='color:red;'>No Parent Category</span>";
        }


        $string  = '';
        foreach( $parent_trail as $ti ) {
            if ( $ti ) {
                $string .=  $ti.' > ';
            }
        }

        (string) $test = substr($string, 0, -2);
        echo $test;

    } else {

        echo "<span style='color:red;'>No Parent Category</span>";

    }

}
id | name                |      slug             |        Parent(s)
-----------------------------------------------------------------------
1  | Electric Chainsaws  |   electric-chainsaws  |   Tools > Chainsaws
function factorial($number) 
{ 
    if ($number < 2) 
    { 
        return 1; 
    } 
    else 
    { 
        return ($number * factorial($number-1)); 
    } 
}
function get_parent_trail($parent_id){

    if ( $parent_id != 0 && $parent_id){

        $parent_trail = array();
        $inc = 0;

        for( $i = 1; $i <= 4; $i ++ ) {

            if ( $parent_id != 0 && $parent_id){
                $this -> db -> select ( '*' );
                $this -> db -> from ( 'categories' );
                $this -> db -> where ( 'cat_id' , $parent_id );
                $query = $this -> db -> get();
                $row = $query -> row_array();

                array_unshift( $parent_trail, $row['cat_name'] ) ;

                $parent_id = $row['parents'];
            } else {
                $inc++;
            }

        }

        $popOff = array_pop($parent_trail);

        if ($inc > 2 ){
            echo "<span style='color:red;'>No Parent Category</span>";
        }


        $string  = '';
        foreach( $parent_trail as $ti ) {
            if ( $ti ) {
                $string .=  $ti.' > ';
            }
        }

        (string) $test = substr($string, 0, -2);
        echo $test;

    } else {

        echo "<span style='color:red;'>No Parent Category</span>";

    }

}