Note that when using PGSQL_BOTH, numerically and associatively indexed fields are separate variables and treated as such:
<?php
$res = pg_query("Select 'foo' as bar");
$data = pg_fetch_array($res, 0, PGSQL_BOTH);
var_dump($data);
$data[0] = 'bar';
var_dump($data);
?>
If you want to have reference binding between your numeric and associative indexes, you'll have to establish that yourself:
<?php
$result = pg_query("Select 'foo' as bar");
$data = pg_fetch_row($result);
$from = $data;
foreach($from as $cx => $value)
{
$key = pg_field_name($result, $cx);
if (is_string($key)) $data[$key] =& $data[$cx];
}
var_dump($data);
$data[0] = 'baz';
var_dump($data);
?>