在数组初始化时设置数组键(pdo fetch_class)

时间:2013-01-25 10:37:26

标签: php sql pdo resultset

我正在开发一个项目,该项目的一部分要求我将我的一些sql结果转换为一个类对象数组。

为方便起见,我更喜欢将我的数组键设置为sql行的主键,以便我可以快速访问它们。

我现在正在这样做的方法是将每个对象重新映射到一个新数组,然后我手动将该键设置为$ object-> id。有什么方法我可以让pdo在获取初始数组时这样做,所以我不需要做我正在做的事情。

1 个答案:

答案 0 :(得分:1)

嗯,你可以这样做:

array_map(
    'reset', 
    $stmt->fetchAll(
        PDO::FETCH_GROUP|PDO::FETCH_CLASS, 
        'className'
    )
);

但这可能不比你现在做的更漂亮。另请参阅herehere

或者可能涉及PDO::FETCH_KEY_PAIR