代码之家  ›  专栏  ›  技术社区  ›  gator

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

  •  1
  • gator  · 技术社区  · 7 年前

    我有一张桌子,桌上有 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")
    )
    

    我想通过密钥访问此阵列 身份证件 . 类似于:

    echo $array["1"]; // "Flute"
    echo $array["14"]; // "Triangle"
    echo $array["7"]; // "Tuba"
    

    不一定完全像上面那样,但我可以打印 名称 使用键从数组中 身份证件 . 这样的事情可能吗?格式化先前创建的数组。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Luiz    7 年前

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

    类似于:

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