serialize関数で配列やオブジェクトを文字列化

serialize関数を利用すると、配列やオブジェクトを文字列化してくれます。文字列化することで、配列データをそのままDBに保存することができます。
(シリアライズの方法として、json_encodeを利用する方法もあります。)

serialize関数

echo serialize(
        array(
            'bool' => true,
            'int' => 100,
            'float' => 3.33,
            'null' => NULL,
            'string' => 'aaaaa',
            'array' => array('鈴木', '山田', '佐藤')
        )
);
// a:6:{s:4:"bool";b:1;s:3:"int";i:100;s:5:"float";d:3.3300000000000000710542735760100185871124267578125;s:4:"null";N;s:6:"string";s:5:"aaaaa";s:5:"array";a:3:{i:0;s:6:"鈴木";i:1;s:6:"山田";i:2;s:6:"佐藤";}}

出力された文字列を見やすい形に整形してみます。

a:6:
 {s:4:"bool";b:1;
  s:3:"int";i:100;
  s:5:"float";d:3.3300000000000000710542735760100185871124267578125;
  s:4:"null";N;
  s:6:"string";s:5:"aaaaa";
  s:5:"array";a:3:
               {i:0;s:6:"鈴木";
                i:1;s:6:"山田";
                i:2;s:6:"佐藤";
               }
 }

型:値 の形式に変換されていることがわかります。

unserialize関数

シリアライズされた文字列を、元に戻すにはunserialize関数を利用します。

var_dump(unserialize('a:6:{s:4:"bool";b:1;s:3:"int";i:100;s:5:"float";d:3.3300000000000000710542735760100185871124267578125;s:4:"null";N;s:6:"string";s:5:"aaaaa";s:5:"array";a:3:{i:0;s:6:"鈴木";i:1;s:6:"山田";i:2;s:6:"佐藤";}}'));
/*
 * array (size=6)
 *   'bool' => boolean true
 *   'int' => int 100
 *   'float' => float 3.33
 *   'null' => null
 *   'string' => string 'aaaaa' (length=5)
 *   'array' => 
 *     array (size=3)
 *       0 => string '鈴木' (length=6)
 *       1 => string '山田' (length=6)
 *       2 => string '佐藤' (length=6)
 */
わくわくBank.
フリーランスのエンジニアとして活動してます。ここでは、ソフトウェア開発で必要とされる技術、用語、概念を整理しています。

PHPに関連する書籍 (Amazon)