如何使用pdo以[col1=>[col2=>col3,col2=>col3]]格式获取数据?

50pmv0ei  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(500)

我有一个名为bid\u lvl\u descs的mysql表,其中包含bid\u type、lvl、desc列
bid_type和lvl一起总是唯一的,而desc的目的将是唯一的,但技术上不能是唯一的。示例数据:

+----------+-----+---------------------+
| bid_type | lvl |        desc         |
+----------+-----+---------------------+
|        9 |   1 |  Blabla             |
|        9 |   2 |  bla ba bla         |
|        9 |   3 |  bla bla bla bla    |
|        9 |   4 |  Bllsllsabablalllll |
|        7 |   1 |  bla                |
|        7 |   2 |  blabla             |
|        7 |   3 |  blablabla          |
|        7 |   4 |  Bbllaallssl        |
+----------+-----+---------------------+

我想选择数据并将其保存在php数组中,这样我就可以在需要时通过简单的操作轻松地访问和缓存 cached_arr[ bid_type ] [ lvl ] ```
array {
9 array {
1 => 'bla',
2 => 'blabla',
3 => 'blablabla',
4 => 'blablablabla'
}
7 array {
1=> ...
2=>
3=>
4=>...
}
//An so on
}

我尝试了pdostatement::fetchall(pdo::fetch_group),但它创建的数组的格式比必需的稍微复杂一些。有什么建议吗?
代码:
yzuktlbb

yzuktlbb1#

您可以使用php执行此操作:

$results = $db->run('SELECT bid_type,lvl,desc FROM bid_lvl_descs')->fetchAll();
$output = [];
foreach($results as $result){
    $output[$result['bid_type']][] = $result;
}

相关问题