有没有办法使用PDO的获取样式对密钥对结果进行分组?

时间:2017-04-10 11:33:20

标签: php pdo

如果只查询了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"
    )    
)

namevalue是密钥对,但我需要使用第一列对其进行分组,例如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'];
}

有什么建议吗?

0 个答案:

没有答案