如果只查询了2列,PDO的FETCH_KEY_PAIR
只能返回结果。
像SELECT category, name, value ..
之类的查询返回带有3个值的数据行,我想使用PDO的获取样式来获得如下结果集:
array(
'category_1' => array(
'name 1' => "value 1",
'name 2' => "value 2"
),
'category_2' => array(
'name 3' => "value 3",
'name 4' => "value 4"
)
)
name
和value
是密钥对,但我需要使用第一列对其进行分组,例如PDO::FETCH_COLUMN|PDO::FETCH_KEY_PAIR|PDO::FETCH_GROUP
。我知道这不起作用,我希望如果支持的常量的某些组合可以给我预期的结果,所以我不必迭代结果来得到我想要的。
或者,换句话说,PDO的获取方式解决方案如下:
$stmt = $database->prepare('Select category, name, value FROM table_name');
$stmt->execute();
$results = $stmt->fetchAll(\PDO::FETCH_ASSOC);
$final = array();
foreach($results as $result) {
$final[$result['category']][$result['name']] = $result['value'];
}
有什么建议吗?