从PHP数组中隔离字符串?

时间:2013-09-12 19:19:03

标签: php regex arrays string parsing

让我们说我刚从MySQL数据库中选择了PHP数组的字符串表示形式,如下所示:

a:1:{s:2:"cc";a:2:{i:39340;s:9:"Username1";i:119778;s:9:"Username2";}}

如何提取字符串"用户名1"和"用户名2" (或者更确切地说,第二组花括号中的所有字符串),其内容可以是此数组中的任何ASCII字符串(但不是字符串" cc")?有没有直接的方法在PHP中执行此操作,还是需要使用正则表达式?

1 个答案:

答案 0 :(得分:4)

使用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
        )

)

See it in action