如何将包含嵌套数组的字符串转换为实际数组?

时间:2016-04-22 11:40:56

标签: php string parsing multidimensional-array

我试图找到一种方法将字符串类型变量转换为数组类型变量。更确切地说,我正在寻找的是改变这个(例子):

$v = ['1', 'a', ['2', 'b', ['3'], 'c']];

请注意,这不是json格式的字符串。 进入这个:

{{1}}

注意第一个例子中的双引号,$ v是一个字符串,而不是一个数组,这是所需的效果。

3 个答案:

答案 0 :(得分:3)

使用str_replace(准备解码)和json_decode函数的简单解决方案:

$v = "['1', 'a', ['2', 'b', ['3'], 'c']]";
$converted = json_decode(str_replace("'",'"',$v));

print_r($converted);

输出:

Array
(
    [0] => 1
    [1] => a
    [2] => Array
        (
            [0] => 2
            [1] => b
            [2] => Array
                (
                    [0] => 3
                )

            [3] => c
        )    
)

答案 1 :(得分:2)

$v = "['1', 'a', ['2', 'b', ['3'], 'c']]";

eval("\$v = $v;");

var_dump($v);

PS:确保$ v string不包含意外代码。

答案 2 :(得分:1)

这应该有效:

$json = "['1', 'a', ['2', 'b', ['3'], 'c']]";
$json = str_replace("'",'"',$json);
$result_array = json_decode($json); // This is your array