在PHP時得到的陣列從pgsql的:如何處理從pgsql返回的數組?
$res = $db
->query("SELECT myarray FROM arrays WHERE array_name=smth")
->fetchRow();
exit (json_encode($res));
在pgsql的類型是整數[]
但在JS我得到JSON與一個字符串「{1,2,3,..., }「 如何進入'陣列方式'這個數據?
在PHP時得到的陣列從pgsql的:如何處理從pgsql返回的數組?
$res = $db
->query("SELECT myarray FROM arrays WHERE array_name=smth")
->fetchRow();
exit (json_encode($res));
在pgsql的類型是整數[]
但在JS我得到JSON與一個字符串「{1,2,3,..., }「 如何進入'陣列方式'這個數據?
PDO不做任何類型的翻譯,所有內容都以字符串形式返回。所以你將不得不使用explode()來解析字符串,並自己構建一個PHP數組。
json_encode成功時返回一個JSON編碼的字符串。
將fetchrow()返回的值分配給一個變量,並嘗試在json_encode之前將其打印出來。它將是一個數組!
如果您想要將JavaScript解碼爲JSON數組,您可以簡單地使用函數eval()。但首先你應該確保它是一個JSON字符串。 查看更多:http://json.org/js.html
您可以使用這樣的事情:
$php_array = json_decode(str_replace(
array('[', ']', '{', '}'),
array('\u005B', '\u005D', '[', ']'),
$your_pgsql_array
));
的問題是,從PHP的pgsql但串獲得不陣列()。我想獲得php數組,並且json_encode將爲我做所有事情,而無需評估 – 2011-05-02 17:11:07
爲什麼在將數據插入數據庫之前不先序列化變量,然後您只需將其反轉。檢查[serialize()](http://pt.php.net/manual/pt_BR/function.serialize.php)和[unserialize()](http://pt.php.net/manual/pt_BR/function。 unserialize.php)。如果你不想這樣做,你需要手動解析它們。 – 2011-05-02 17:18:18