php - 来自mysql结果的多维数组

标签 php mysql arrays

我有 2 个数据库表:categoriessub_categoriessub_categories 表通过类别 ID cat_id

链接到 categories

在 php 中,我想打印父类别和属于它的所有子类别。是否可以通过从 1 mysql 查询创建多维数组来做到这一点?

示例结果:

array
(
  "Category 1"=>array
  (
  "Sub-category",
  "Sub-category",
  "Sub-category"
  ),
  "Category 2"=>array
  (
  "Sub-category"
  ),
  "Category 3"=>array
  (
  "Sub-category",
  "Sub-category",
  "Sub-category"
  )
 );

我的查询只为每个类别返回 1 个子类别:

SELECT `categories`.`cat_title`, `sub_categories`.`sub_cat_title` 
FROM (`categories`) 
LEFT JOIN `sub_categories` 
ON `sub_categories`.`cat_id` = `categories`.`cat_id` 
GROUP BY `categories`.`cat_title`

最佳答案

MySQL 不会返回一个数组,它只会返回行,但是您可以使用 php 轻松创建数组.. 只需这样做

<?php
  $db = new mysqli('host','user','password','database');
  $query =  "SELECT c.cat_title, s.sub_cat_title
             FROM categories c
             LEFT JOIN sub_categories s USING (cat_id)
             ORDER BY cat_title";
  $result = $db->query($query);
  while($row = $result->fetch_assoc()){
    $cats[$row['cat_title']][] = $row['sub_cat_title'];
  }        

?>

关于php - 来自mysql结果的多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11680209/

相关文章:

php - 无法使用phpspreadsheet下载excel文件

php - 使用 PHP 的多部分表单数据。 (图片上传)

python - 合并版本化字典数组

arrays - 如何在 http header 中传递数组?

arrays - 如何在golang中初始化和设置二维数组

php - MYSQL 存储过程给出空值

php - 检查数据库查询中的数组中是否存在值

php - 如何将MySQL中的50万行39列数据转换为Excel

sql - 如何优化此查询以摆脱子查询?

Php nusoap 不传递内容