在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