Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.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
PHP MySQL PDO结果到递归关联数组?_Php_Mysql_Pdo_Iteration - Fatal编程技术网

PHP MySQL PDO结果到递归关联数组?

PHP MySQL PDO结果到递归关联数组?,php,mysql,pdo,iteration,Php,Mysql,Pdo,Iteration,我有一个MySQL表: +---------+------------------------+-----------+ | topicID | questionTopics_topicID | topicName | +---------+------------------------+-----------+ | 1 | 1 | Root | | 2 | 1 | Color

我有一个
MySQL
表:

+---------+------------------------+-----------+
| topicID | questionTopics_topicID | topicName |
+---------+------------------------+-----------+
|       1 |                      1 | Root      |
|       2 |                      1 | Colors    |
|       3 |                      2 | Black     |
|       4 |                      2 | White     |
|       5 |                      1 | Animals   |
|       6 |                      5 | Dog       |
|       7 |                      5 | Cat       |
+---------+------------------------+-----------+
我想要一个
PHP数组
,其中结果集作为
questionTopics\u-topicID
获取,作为父级:

$array = array(
    "Animals" => array(
            6 => "Dog",
            7 => "Cat"
    ),
    "Colors" => array(
        3 => "Black",
        4 => "White"
    ),
);
目前,我对结果集进行2次迭代,首先添加
主要类别
(颜色、动物),然后添加
子类别
(狗、白色)


是否有任何方法可以在不进行手动迭代的情况下使用
PDO实现相同的最终结果?

如果只有两个级别,请将表连接到自身,然后使用fetchAll示例中的分组。您可以将表与自身连接,并在一个查询中同时获取这两个级别。大概是这样的: