serialize関数を利用すると、配列やオブジェクトの内容を文字列に変換することができます。
複雑な構造の配列(多次元配列など)を1つの文字列にまとめることができるため、
データベースやファイル等に書き出す際に便利です。
[php]
$a = array(0 => ‘A’, 1 => ‘B’, 2 => ‘C’);
$b = serialize($a); // a:3:{i:0;s:1:"A";i:1;s:1:"B";i:2;s:1:"C";}
[/php]
元の配列に戻すにはunserialize関数を使用します。
[php]
$a = unserialize($b); // array(0 => ‘A’, 1 => ‘B’, 2 => ‘C’)
[/php]
配列の内容をデータベースに格納する際にserialize関数を利用すると、
構造が異なる配列でも同じカラムのデータとして保存することができます。
構造の違いを吸収できるというメリットはありますが、カラム内の特定のデータを抽出したり、
ソートを行う場合には、文字列データとして格納してしまうと使いづらくなります。
そのため、配列の構造がほとんど変わらない場合は、なるべくその配列の構造に合わせて
カラムを作成する方が望ましいです。