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

重複値を使用したMySQL結果からの多次元ネスト配列の作成(PHP)

    これはあなたが探しているもののように見えます

    $array = array() ;
    
    while ($row = PDO::fetchAll()) // Replace with relevant Information
    {
        $section = array();
        $items  = array();
        $prices  = array();
    
        if(!array_key_exists($row['MenuId'], $array))
        {
            $array[$row['MenuId']] = array();
            $array[$row['MenuId']]['MenuName'] = $row['MenuName'] ;
            $array[$row['MenuId']]['MenuId'] = $row['MenuId'] ;
            $array[$row['MenuId']]['Section'] = array();
        }
    
        if(!array_key_exists($row['SectionId'], $array[$row['MenuId']]['Section']))
        {
            $array[$row['MenuId']]['Section'][$row['SectionId']] = array();
            $array[$row['MenuId']]['Section'][$row['SectionId']]['SectionId'] = $row['SectionId'] ;
            $array[$row['MenuId']]['Section'][$row['SectionId']]['SubmenuName'] = $row['SubmenuName'] ; 
            $array[$row['MenuId']]['Section'][$row['SectionId']]['Items'] = array() ;
    
        }
    
        $items['ItemName'] = $row['ItemName'] ;
        $items['Description'] = $row['Description'] ;
    
        $prices['PriceId']  = $row['PriceId'] ;
        $prices['Price']  = $row['Price'] ;
    
        $items['Prices'] = $prices ;
        $section['Items'] = $items ;
    
        $array[$row['MenuId']]['Section'][$row['SectionId']]['Items'][] = $items ;
    
    }
    
    
    var_dump($array);
    

    ほんの少しの変更で、あなたはそれをあなたが望むものにすることができます




    1. mysqlのストアコードを確認し、結果がtrueを返した場合にテーブルを更新するにはどうすればよいですか?

    2. PythonMySQLdbプレースホルダー構文

    3. mysqlデータベースの自動パーティショニング

    4. DockerでのMariaDBMaxScaleロードバランシング:管理:パート2