我有字符串,需要转换为数组。
<?php
$str = '"en"=>"English" , "fr"=>"French" , "de"=>"German"';
$array = array($str);
print_r($array)
?>
我需要这个结果:
Array
(
[en] => English
[fr] => French
[de] => German
)
PHP中是否有一个函数可以执行此操作?
当尝试下面的代码时,我得到了很好的结果。但是当使用uppern代码时,不!如何为输入数组转换String变量?
<?php
//$str = '"en"=>"English" , "fr"=>"French" , "de"=>"German"';
$array = array("en"=>"English" , "fr"=>"French" , "de"=>"German");
print_r($array)
?>
答案 0 :(得分:4)
正如评论中所说,如果你有办法改变字符串,你应该查看json
,否则这样就足够了:
$str = '"en"=>"English" , "fr"=>"French" , "de"=>"German"';
$first = explode(' , ',$str);
$second = array();
foreach($first as $item) {
list($key, $value) = explode('=>', $item);
$second[str_replace('"', '', $key)] = $value;
}
返回:
Array
(
[en] => "English"
[fr] => "French"
[de] => "German"
)
答案 1 :(得分:1)
你可以使用eval,在你的情况下可能是这样的:
$str = '"en"=>"English" , "fr"=>"French" , "de"=>"German"';
eval("\$array = array($str);");
print_r($array)
<强>结果:强>
Array
(
[en] => English
[fr] => French
[de] => German
)