【发布时间】:2011-11-19 01:12:30
【问题描述】:
我时不时会遇到类似以下问题的查询:
SELECT `key`, `value` FROM `settings`;
在这种情况下,我想获得一个关联数组,使用 key 和 value 的值作为该数组的相应条目,例如如果数据库包含:('first_name', 'Tom'), ('last_name', 'Jeferson'),则数组应为array('first_name' => 'Tom', 'last_name' => 'Jeferson');。
最常见的方法是:
$settings_flat = $db
->query("SELECT `name`, `value` FROM `settings`;")
->fetchAll(PDO::FETCH_ASSOC);
$settings = array();
foreach ($settings_flat as $setting) {
$settings[$setting['name']] = $setting['value'];
}
*另一种方法是调用fetchAll(PDO::FETCH_COLUMN) 两次,然后使用array_combine 创建数组。但是,由于它涉及到两个数据库的两个调用,因此我将其作为一个选项省略了。
还有其他方法吗?
【问题讨论】: