现在PHP无法直接用
postgresql数组工作.例如,PHP采用postgresql数组之类的
‘{ “foo” 的,“酒吧”}’
‘{ “foo” 的,“酒吧”}’
我需要简单的PHP函数来从PHP数组创建多维postgresql数组.
我认为实验性的pg_convert()不是最优的,因为它需要额外的数据来形成数据库输出的简单数组字符串,也许我误解了这个函数的想法.
例如,我需要转换
$from=array( array( "par_1_1","par_1_2" ),array( "array_2_1","array_2_2" ) ); $to='{{"par_1_1","par_1_2"},{"par_2_1","par_2_2"}}';
我可以使用array_walk_recursive()来转换数组中最深的元素吗?
这是一个将PHP数组转换为PG数组的简单函数.
function to_pg_array($set) { settype($set,'array'); // can be called with a scalar or array $result = array(); foreach ($set as $t) { if (is_array($t)) { $result[] = to_pg_array($t); } else { $t = str_replace('"','\\"',$t); // escape double quote if (! is_numeric($t)) // quote only non-numeric values $t = '"' . $t . '"'; $result[] = $t; } } return '{' . implode(",",$result) . '}'; // format }