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

时间:2014-06-23 08:55:40

标签: php arrays

我有字符串,需要转换为数组。

<?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)
?>

2 个答案:

答案 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"
)

Example

答案 1 :(得分:1)

你可以使用eval,在你的情况下可能是这样的:

$str = '"en"=>"English" , "fr"=>"French" , "de"=>"German"';
eval("\$array = array($str);");
print_r($array)

<强>结果:

Array
(
    [en] => English
    [fr] => French
    [de] => German
)