次のような PHP 配列の文字列表現を MySQL データベースから選択したとします。
a:1:{s:2:"cc";a:2:{i:39340;s:9:"Username1";i:119778;s:9:"Username2";}}
文字列 "Username1" と "Username2" (または、中括弧の 2 番目のセット内のすべての文字列) を抽出するにはどうすればよいですか? PHPでこれを行う簡単な方法はありますか、それとも正規表現を使用する必要がありますか?
を使用しunserialize()
ます。なんで?その文字列は実際にはシリアル化された配列であり、その関数はそれを配列に戻すためです。
$array = unserialize('a:1:{s:2:"cc";a:2:{i:39340;s:9:"Username1";i:119778;s:9:"Username2";}}');
print_r($array);
Array
(
[cc] => Array
(
[39340] => Username1
[119778] => Username2
)
)