【发布时间】:2020-02-16 07:50:17
【问题描述】:
我想使用带有数字的列作为数组键。
我在 fetchAll 之后使用了一个循环,但我想知道是否可以使其直接。
我的查询:
$RequeteSql = $db->query("
SELECT *
FROM PouvoirsNumeros
LEFT JOIN Pouvoirs ON (Pouvoirs.Pouvoir_Id = PouvoirsNumeros.Pouvoir_Id)
WHERE
PouvoirsNumeros.TypePerso = 'Ange'
ORDER BY
Pouvoirs.Pouvoir_Nom");
$ResultatRequete = $RequeteSql->fetchAll(PDO::FETCH_GROUP|PDO::FETCH_ASSOC);
有了它,我有:
(
[0] => Array
(
[TypePerso] => Ange
[Numero_Des] => 711
[Pouvoir_Id] => 157
...
)
...
)
我想用Pouvoir_Id替换密钥:
(
[157] => Array
(
[TypePerso] => Ange
[Numero_Des] => 711
[Pouvoir_Id] => 157
...
)
...
)
与PDO::FETCH_GROUP|PDO::FETCH_ASSOC:
(
[157] => Array
(
[0] => Array
(
[TypePerso] => Ange
[Numero_Des] => 711
[Pouvoir_Id] => 157
...
)
)
...
)
可以直接用PDO制作吗?
【问题讨论】:
-
我想你不能用 PDO 做到这一点,只有迭代结果并重建你的数组。
-
我认为 PDO 无法为您处理。但是您可以使用array_column() 自己使用一个衬垫来完成,而无需任何手动 foreach 循环。 Here's an answer about it
-
如果你只选择两个字段
PDO::FETCH_KEY_PAIR可以帮助你。