将SQL结果格式化为数组;按键访问?

时间:2018-05-01 23:27:54

标签: mysql sql arrays pdo

我的表格中包含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"

不一定与上面完全相同,但我可以使用键name从数组中打印id。这样的事情可能吗?格式化先前创建的数组。

1 个答案:

答案 0 :(得分:1)

您需要创建一个新数组并迭代旧数组。

类似的东西:

$newArray = array();
foreach ($array as $item)
    $newArray[$item['id']] = $item['name']