sql >> データベース >  >> RDS >> Mysql

phpは配列をデータベースの階層的な入れ子集合に変換します

    アレイは正常ではありませんでした。

    これは機能しています

    $in_array = array (
        // array(
                'id' => 400,
                'n' => 'Sub 1a',
                's' => array (
                //       array (
                                'n' => 'Sub 1b',
                                'id' => 421,
                                's' => array (
                        //               array (
                                                'n' => 'Sub 1c',
                                                'id' => 422,
                            //              )
                                  )
                    //    )
            //      )
            ),
         array(
                'id' => 500,
                'n' => 'Sub 2a',
                's' => array (
                    //  array (
                                'n' => 'Sub 2b',
                                'id' => 521,
                                's' => array (
                            //          array (
                                                'n' => 'Sub 3b',
                                                'id' => 522,
                                //          )
                                  )
                        //  )
                    )
            )   
    );
    
    $a_newTree = array();
    function rebuild_tree($parent, $left) {   
    global $a_newTree;
    
    $indexed = array();
    $right = $left+1;   
    
    if(array_key_exists('n',$parent)){
        $indexed['n'] = $parent['n'];
    }else{
        $indexed['n'] = '?';
    }
    
    
        foreach($parent as $cat){
                if(is_array($cat)){
                    $right = rebuild_tree($cat, $right);    
                }
        }
    
    
    array_push($a_newTree,array(':lft'=>$left,':rgt'=>$right,':name'=>$indexed['n']));
    
    return $right+1;   
    }   
    
    rebuild_tree($in_array, 1);
    



    1. 条件が満たされたカーソルに存在する

    2. SQL ServerでDEADLOCKをシミュレートする方法は?

    3. リモートダンプをRDSに復元する

    4. Springのストアドプロシージャ-プロシージャから返される結果は常に空です