[英]php convert string variable to array
I have string and need convert to array. 我有字符串,需要转换为数组。
<?php
$str = '"en"=>"English" , "fr"=>"French" , "de"=>"German"';
$array = array($str);
print_r($array)
?>
I need this result: 我需要这个结果:
Array
(
[en] => English
[fr] => French
[de] => German
)
Is there a function in PHP to do this? PHP中是否有功能可以做到这一点?
when try below code, I get good result.but when use uppern code, NO! 当尝试下面的代码时,我会得到很好的结果。但是当使用uppern代码时,不可以! How to convert String variable for input array? 如何转换输入数组的String变量?
<?php
//$str = '"en"=>"English" , "fr"=>"French" , "de"=>"German"';
$array = array("en"=>"English" , "fr"=>"French" , "de"=>"German");
print_r($array)
?>
As said in the comments, you should probably look in to json
if you have a way of changing the string, else something like this will suffice: 如评论中所述,如果您可以更改字符串,则可能应该查看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;
}
Which returns: 哪个返回:
Array
(
[en] => "English"
[fr] => "French"
[de] => "German"
)
You can use eval, In your case could be something like this: 您可以使用eval,在您的情况下可能是这样的:
$str = '"en"=>"English" , "fr"=>"French" , "de"=>"German"';
eval("\$array = array($str);");
print_r($array)
Result: 结果:
Array
(
[en] => English
[fr] => French
[de] => German
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.