PHP dispose de plusieurs fonctions permettant de transformer un tableau en chaine de caractère :
La fonction serialize
Avec un Z comme Zorro, cette fonction permet de linéariser une variable peu importe son type (objet, tableau, chaine, entier, liste ...). Pour faire l'inverse il faut utiliser la fonction unserialize.
Un exemple de serialisation de tableau en php
<?php
$tableau = array('clé 1'=>'valeur 1','clé 2'=>'valeur 2','clé 3'=>'valeur 3');
var_dump(serialize($tableau));
?>
Retourne la chaine de caractère suivante :
a:3:{s:6:"clé 1";s:8:"valeur 1";s:6:"clé 2";s:8:"valeur 2";s:6:"clé 3";s:8:"valeur 3";}
La fonction implode
La fonction implode permet de transformer un tableau en chaine en "collant" un séparateur entre les éléments du tableau. Pour faire l'inverse de implode il faut utiliser la fonction explode avec le même séparateur.
Un exemple de linéarisation avec implode
<?php
$tableau = array('clé 1'=>'valeur 1','clé 2'=>'valeur 2','clé 3'=>'valeur 3');
var_dump(implode(',',$tableau));
?>
Retourne une chaine de caractères de la forme :
"valeur 1,valeur 2,valeur 3"
Vous remarquerez que contrairement à la fonction serialize implode ne permet pas de conserver les clés du tableau.
La fonction json_encode
La fonction json_encode permet de convertir une variable en json. Javascript supportant la notation json, cette fonction est souvent utilisée pour faire des échanges de données entre javascript et php. L'inverse de json_encode et bien entendu la fonction json_decode.
Une exemple de transformation de tableau en chaine de caractères utilisant json_encode
<?php
$tableau = array('clé 1'=>'valeur 1','clé 2'=>'valeur 2','clé 3'=>'valeur 3');
var_dump(json_encode($tableau));
?>
Affiche la chaine suivante :
{"cl\u00e9 1":"valeur 1","cl\u00e9 2":"valeur 2","cl\u00e9 3":"valeur 3"}