简体   繁体   English

PHP将字符串变量转换为数组

[英]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"
)

Example

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM