如何在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,那么我会得到错误