Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Tạo mảng lồng nhau đa chiều từ kết quả MySQL với giá trị trùng lặp (PHP)

Đây giống như những gì bạn đang tìm kiếm

$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);

Chỉ với những thay đổi nhỏ, bạn có thể biến nó thành những gì bạn muốn




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để khóa đọc / ghi vào các bảng MySQL để tôi có thể chọn và sau đó chèn mà không có các chương trình khác đọc / ghi vào cơ sở dữ liệu?

  2. mysql tìm kiếm catid trong trường văn bản

  3. PyMySQL là gì và nó khác MySQLdb như thế nào? Nó có thể ảnh hưởng đến việc triển khai Django không?

  4. Chỉ định SSL cho kết nối cơ sở dữ liệu MySQL bên ngoài Heroku

  5. Làm thế nào tôi có thể nhận được giá trị bên ngoài vòng lặp foreach trong tình huống này?