如何在php中将字符串转换为数组

如何在php中将字符串转换为数组,php,arrays,string,Php,Arrays,String,我有一个变量 var_dump($values) string(191) "array( 'choices' => array( 'm' => 'Male', 'f' => 'Female' ), 'required' => false, 'empty_value' => 'Choose your gender', 'empty_data' => null )" 如何将其转换为数组 我试过这个 $farray = is_array($farray)?$f

我有一个变量

var_dump($values)

string(191) "array( 'choices' => array( 'm' => 'Male', 'f' => 'Female' ), 'required' => false, 'empty_value' => 'Choose your gender', 'empty_data' => null )" 
如何将其转换为数组

我试过这个

$farray = is_array($farray)?$farray:[$farray]
然后var_dump给出了这个

> array(1) { [0] => string(191) "array( 'choices' => array( 'm' => 'Male', 'f' => 'Female' ), 'required' => false, 'empty_value' => 'Choose your gender', 'empty_data' => null )" } `
更新:

我在php类中传递这个注释,然后阅读它

 * @Type(options="array(
    'choices' => array(
        'm' => 'Male',
        'f' => 'Female'
    ),
    'required'    => false,
    'empty_value' => 'Choose your gender',
    'empty_data'  => null
)"

当然,这是字符串:

$string = "array( 'choices' => array( 'm' => 'Male', 'f' => 'Female' ), 'required' => false, 'empty_value' => 'Choose your gender', 'empty_data' => null )";
如果需要数组,则必须声明它而不带引号:

$array = array('choices' => ...);

问题是您是如何获得
$value

从获取
$values
的源中获取数组

eval
将为您提供结果,但在大多数情况下应避免使用。

$arr = eval('return '.$values.';');
编辑:

由于您正在尝试解析注释,我建议使用注释解析库。
例如:.

$values
已经是数组,而不是string@user3147180请显示
$values
来自何处。来自PHP手册:“eval()返回NULL,除非在求值代码中调用return”。正确的代码应该是
$arr=eval('return'.$values')@Jojo-Yep,你是对的,一个
也是必需的。@xdazz,如果您说应该避免eval,有没有更好的方法将字符串数组转换为php数组。我已经看到我不能直接将数组传递给注释,我已经将它们作为strings发送。我已经编辑了这个问题,如果我只是键入array,那么我会得到错误