【发布时间】:2017-10-04 16:26:07
【问题描述】:
我正在使用以下带有 PDO::FETCH_UNIQUE 标志的 PDO 语句来使结果数组按唯一行 ID 进行索引。
<?php
$statement = $conn->prepare("
SELECT
unique_id, field_1, field_2, field_3
FROM
table
WHERE
field_1 = 'foo'
AND field_2 = ?
ORDER BY
field_3
");
if($statement->execute(array($field_2_value)))
{
$resultArray = $statement->fetchAll(PDO::FETCH_ASSOC|PDO::FETCH_UNIQUE);
}
?>
$resultArray:
Array
(
[123] => Array
(
[field_1] => foo
[field_2] => someVal
[field_3] => bar
)
[234] => Array
(
[field_1] => foo
[field_2] => someVal
[field_3] => car
)
[345] => Array
(
[field_1] => foo
[field_2] => someVal
[field_3] => dog
)
)
有没有办法让两个数组索引保持原样,并在行数据中保留唯一的行 ID,如下所示:
Array
(
[123] => Array
(
[unique_id] => 123
[field_1] => foo
[field_2] => someVal
[field_3] => bar
)
[234] => Array
(
[unique_id] => 234
[field_1] => foo
[field_2] => someVal
[field_3] => car
)
[345] => Array
(
[unique_id] => 345
[field_1] => foo
[field_2] => someVal
[field_3] => dog
)
)
我意识到我可以使用辅助循环来做到这一点,但如果这是 fetchAll() 中的一个选项,它会感觉更简洁。
【问题讨论】:
-
您是否正在使用 foreach 循环并寻找一种方法来利用每个 key 以及每个 value?
-
@SamOnela 是的,我目前正在重写一个遗留函数,从该函数中生成的数组在整个代码库中以多种不同方式使用,为了保持兼容性,我需要保留键和值.
标签: php mysql arrays pdo associative-array