PostgreSQL的转换数组PHP数组 [英] Convert PostgreSQL array to PHP array

查看:187
本文介绍了PostgreSQL的转换数组PHP数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有麻烦阅读PostgreSQL的数组在PHP。我曾尝试爆炸(),但这个突破包含字符串)逗号和str_getcsv(阵列,但它也没什么好PostgreSQL并不引述日本字符串。

不工作:

 爆炸(',',修剪($ pgArray ['关键'],'{}'));
str_getcsv(修剪($ pgArray ['关键'],'{}'));

例如:

  //的print_r()在PostgreSQL上返回的数据:阵列([字符串] => {または,一些字符串没有一个逗号,字符串,请用逗号} )//输出:阵列([0] =>または[1] =>中一些字符串没有一个逗号[2] =>中的字符串[3] =>在一个逗号)
爆炸(',',修剪($ pgArray ['字符串'],'{}'));//输出:阵列([0] => [1] =>一些字符串没有逗号[2] =>将字符串,请用逗号)
的print_r(str_getcsv(修剪($ pgArray ['字符串'],'{}')));


解决方案

如果你的PostgreSQL 9.2,你可以做这样的事情:

  SELECT array_to_json(pg_array_result)AS new_name的FROM TBL1;

结果将返回数组作为JSON

然后在PHP端的问题:

  $阵列= json_de code($ returned_field);

您也可以转换回来。这里有 JSON功能

I have trouble reading Postgresql arrays in PHP. I have tried explode(), but this breaks arrays containing commas in strings, and str_getcsv() but it's also no good as PostgreSQL doesn't quote the Japanese strings.

Not working:

explode(',', trim($pgArray['key'], '{}'));
str_getcsv( trim($pgArray['key'], '{}') );

Example:

// 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'], '{}') ));

解决方案

If you have PostgreSQL 9.2 you can do something like this:

SELECT array_to_json(pg_array_result) AS new_name FROM tbl1;

The result will return the array as JSON

Then on the php side issue:

$array = json_decode($returned_field);

You can also convert back. Here are the JSON functions page

这篇关于PostgreSQL的转换数组PHP数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆