我一直在尋找一個明確的答案,看起來是一個非常簡單的任務 - 不幸的是所有的解決方案,我可以找到(並有很多)使用不建議使用的mysql_fetch_assoc。PHP數據庫結果>數組> JSON(沒有棄用的mysql_fetch_assoc)
我所要做的就是從數據庫中獲取兩列結果集並以JSON格式回顯 - 我已經管理好了一切,除了一點 - 我無法工作如何獲取值輸入到使用array_push的二維數組(兩列數組)中。我最終將我的兩列值合併到一個數組中。下面是我做了什麼一個精簡版本:
header('Content-Type: application/json');
$mostPopularStm = $sparklyGenericPdoObj->prepare("SELECT views, thing FROM X");
$mostPopularStm->execute();
$mostPopularRS = $mostPopularStm->fetchAll();
echo '{data:';
$mostPopularJson = array();
foreach ($mostPopularRS as $mostPopularItem)
{
array_push($mostPopularJson, $mostPopularItem["views"], $mostPopularItem["thing"]);
}
echo json_encode($mostPopularJson);
echo '}';
這像這樣的生產輸出:
{data:["Monkeyface","43","Giblets","25","Svelte","22","Biriani","21","Mandibles","20"]}
但我需要的是這樣的:
{data:["Monkeyface":"43","Giblets":"25","Svelte":"22","Biriani":"21","Mandibles":"20"]}
我知道我可以創建一些手動來做到這一點,使用json_encode格式化每個循環的字符串,但它似乎效率低下。
任何指針將非常感激!
您想要的JSON無效。數組是一個有序的值列表 - 不是鍵值對,它是一個對象。 '數據'也需要引號。 – kero