Originariamente inviato da 8matt5
se vuoi salvare una variabile in un campo stringa (qualunque tipo sia), usa var_export().
per fare questo con gli array io uso serialize()
Per quel che concerne più in generale il problema esposto dall'utente "manipolare" array di cui non si conosce la struttura (monodimensionale o pluridimensionale) effettivamente è difficile...
per farlo in maniera corretta occorre utilizzare funzioni recursive (che sono un pò complicatuccie).
Vi è anche un esempio tratto da php.net (la bibbia) che mi sono permesso di commentare:
Codice PHP:
// la funzione accetta due parametri:
// 1) carattere separatore
// 2) array da trasformare in stringa
function r_implode($glue,$pieces)
{
// l'array messo come secondo parametro viene ciclato
foreach( $pieces as $r_pieces )
{
// se uno dei suoi elementi è un array
if( is_array( $r_pieces ) )
{
// ecco la "recursive" della funzione
// cioè si auto-applica al suo interno
$retVal[] = r_implode( $glue, $r_pieces );
}
else
{
// altrimenti aggiunge semplicemente il relativo valore
// ad un nuovo monodimensionale
$retVal[] = $r_pieces;
}
}
// esegue l'implode di un array monodimensionale
// e quindi darà una stringa
return implode( $glue, $retVal );
}
$test_arr = array( 0, 1, array( 'a', 'b' ), array( array( 'x', 'y'), 'z' ) );
echo r_implode( ',', $test_arr ) . "\n";