将 SQL 结果格式化为数组;通过密钥访问? [复制]

Posted

技术标签:

【中文标题】将 SQL 结果格式化为数组;通过密钥访问? [复制]【英文标题】:Format SQL result into array; access by key? [duplicate] 【发布时间】:2018-05-01 23:27:54 【问题描述】:

我有一张桌子,上面有 nameid 的项目。这是一些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 结果格式化为数组;通过密钥访问? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

根据 SQL 中的 id 将 JSON 格式化为嵌套数组

将多维数组的列格式化为一维数组

如何将访问密钥和秘密密钥 shell 变量传递给 Redshift 复制命令

将对象数组重新格式化为键数组

将 SQL 日期格式化为英国格式 [重复]

如何将列表标签中的数字(通过 Combat)格式化为幂符号?