我在PHP中阅读Postgresql数组时遇到麻烦。我已经尝试过explode(),但是这会破坏包含字符串中的逗号的数组和str_getcsv(),但是Postgresql不会引用日文字符串也是不错的。
不工作:
explode(',',trim($pgArray['key'],'{}')); str_getcsv( trim($pgArray['key'],'{}') );
例:
// print_r() on Postgresql returned data: Array ( [strings] => {または,"some string without a comma","a string,with a comma"} ) // Output: Array ( [0] => または [1] => "some string without a comma" [2] => "a string [3] => with a comma" ) explode(',trim($pgArray['strings'],'{}')); // Output: Array ( [0] => [1] => some string without a comma [2] => a string,with a comma ) print_r(str_getcsv( trim($pgArray['strings'],'{}') ));
如果你有Postgresql 9.2,你可以这样做:
SELECT array_to_json(pg_array_result) AS new_name FROM tbl1;
结果将返回数组作为JSON
然后在PHP端问题:
$array = json_decode($returned_field);
您也可以转换回来。这是JSON functions页