将 SQL 结果格式化为数组;通过密钥访问? [复制]
Posted
技术标签:
【中文标题】将 SQL 结果格式化为数组;通过密钥访问? [复制]【英文标题】:Format SQL result into array; access by key? [duplicate] 【发布时间】:2018-05-01 23:27:54 【问题描述】:我有一张桌子,上面有 name
和 id
的项目。这是一些create table
代码:
CREATE TABLE items (
id INT,
name TEXT
);
INSERT INTO items VALUES
(1, "Flute"),
(2, "Guitar"),
(4, "Saxophone"),
(7, "Tuba"),
(5, "Xylophone"),
(14, "Triangle");
我想对这个抓取所有项目进行查询:
$stmt = $db->prepare("
SELECT id, name FROM items
ORDER BY id ASC
");
$stmt->execute();
$items = $stmt->fetchAll(PDO::FETCH_ASSOC);
这将创建一个如下所示的数组:
Array (
[0] => Array ([id] => 1, [name] => "Flute"),
[1] => Array ([id] => 2, [name] => "Guitar"),
...
[5] => Array ([id] => 14, [name] => "Triangle")
)
我想通过键id
访问这个数组。比如:
echo $array["1"]; // "Flute"
echo $array["14"]; // "Triangle"
echo $array["7"]; // "Tuba"
不一定完全像上面那样,但我可以使用键id
从数组中打印name
。这样的事情可能吗?格式化之前创建的数组。
【问题讨论】:
【参考方案1】:您需要创建一个新数组并迭代旧数组。
类似:
$newArray = array();
foreach ($array as $item)
$newArray[$item['id']] = $item['name']
【讨论】:
以上是关于将 SQL 结果格式化为数组;通过密钥访问? [复制]的主要内容,如果未能解决你的问题,请参考以下文章