Conversione degli array da Postgres a PHP e viceversa

ATTENZIONE! Il post ha più di 2 anni e le informazioni contenute potrebbero essere obsolete (ad esempio a causa di un aggiornamento di versione rispetto agli elementi descritti o links modificati da siti esterni).

PostgreSQL permette di salvare i dati come array ( http://www.postgresql.org/docs/current/static/arrays.html ). La forma per il salvataggio di un array è la seguente:

{3,56,78,9,72}

Per poter gestire i risultati in PHP occorre eseguire una conversione. Per ogni campo della tabella contenente un array monodimensionale è possibile utilizzare la funzione str_getcsv() . Al momento del salvataggio per eseguire l'operazione inversa, cioè la conversione da PHP a Postgres si può utilizzare la funzione implode (sempre nel caso di array monodimensionale). Ecco come utilizzarle:

//array posgres
$pg_array = '{3,56,78,9,72}';
echo '
Array Postgres iniziale: ';
print_r($pg_array);

//conversione Postgres->PHP
$php_array = str_getcsv(trim($pg_array, "{}"));
echo '
Array PHP: ';
print_r($php_array);

//conversione PHP->Postgres
$pg_array = '{'.implode(",", $php_array).'}';
echo '
Array Postgres: ';
print_r($pg_array);


Commenti