如果string具有类似于数组的内容,则为字符串转换

时间:2015-08-19 12:24:24

标签: php arrays string

我有这样的事情:

array('fields' => array(
             0 => array('name'  => 'family_name', 
                        'label' => 'Family Names'),
                  array('name'  => given_names', 
                        'label' => 'Given Names'),
                  array('name'  => 'additional_names',
                        'label' => 'Additional Names'),
                  array('name'  => 'honorific_prefixes', 
                        'label' => 'Honorific Prefixes'),
                  array('name'  => honorific_suffixes', 
                        'label' => 'Honorific Suffixes')
                       )
                    )

在变量中作为字符串。整个事情是在一个数据库领域。如果输出变量,则为字符串。 我会有一个内容为子阵列的数组。如何将此值转换为数组?

我用谷歌搜索,但我发现爆炸和分裂等等,但我想我错过了找到任何解决方案的关键词。

感谢您在这种情况下的任何帮助。

2 个答案:

答案 0 :(得分:1)

尝试使用eval(),https://secure.php.net/manual/en/function.eval.php

eval("\$array = $string;");
print_r($array);

答案 1 :(得分:1)

您的字符串未正确构建以将其放入eval函数中。内部的两个字符串不具有前面的引用,这将导致解析错误。但你可以用以下方法纠正它:

$string = str_replace("=> given_names'", "=> 'given_names'", $string);
$string = str_replace("=> honorific_suffixes'", "=> 'honorific_suffixes'", $string);

之后你可以使用shapeshifter的答案(请将答案标记为正确答案):

eval("\$array = $string;");
var_dump($array);

如果您只想查找保存和恢复阵列的方法,也可以使用serialize / unserialize