php将字符串变量转换为数组
我有字符串,需要转换为数组php将字符串变量转换为数组,php,arrays,Php,Arrays,我有字符串,需要转换为数组 <?php $str = '"en"=>"English" , "fr"=>"French" , "de"=>"German"'; $array = array($str); print_r($array) ?> PHP中是否有这样的函数 当尝试下面的代码时,我得到了很好的结果。但是当使用上面的代码时,没有!如何转换输入数组的字符串变量 <?php //$str = '"en"=>"English" , "fr"=>"
<?php
$str = '"en"=>"English" , "fr"=>"French" , "de"=>"German"';
$array = array($str);
print_r($array)
?>
PHP中是否有这样的函数
当尝试下面的代码时,我得到了很好的结果。但是当使用上面的代码时,没有!如何转换输入数组的字符串变量
<?php
//$str = '"en"=>"English" , "fr"=>"French" , "de"=>"German"';
$array = array("en"=>"English" , "fr"=>"French" , "de"=>"German");
print_r($array)
?>
如评论中所述,如果您有办法更改字符串,您可能应该查看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"
)
如评论中所述,如果您有办法更改字符串,您可能应该查看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"
)
您可以使用eval,在您的情况下可以是这样的:
$str = '"en"=>"English" , "fr"=>"French" , "de"=>"German"';
eval("\$array = array($str);");
print_r($array)
结果:
Array
(
[en] => English
[fr] => French
[de] => German
)
您可以使用eval,在您的情况下可以是这样的:
$str = '"en"=>"English" , "fr"=>"French" , "de"=>"German"';
eval("\$array = array($str);");
print_r($array)
结果:
Array
(
[en] => English
[fr] => French
[de] => German
)
这看起来像一个关联数组。邪恶的eval
浮现在脑海中。不要这样做。相反,请尝试一系列的explode
和trim
甚至preg\u match
。不,这不是普遍支持的序列化格式。您必须为此自定义格式编写自己的函数。或者使用一般支持的东西,比如JSON。这是从哪里来的?它最初是如何变成一个字符串的?看起来像是一个关联数组。邪恶的eval
浮现在脑海中。不要这样做。相反,请尝试一系列的explode
和trim
甚至preg\u match
。不,这不是普遍支持的序列化格式。您必须为此自定义格式编写自己的函数。或者使用一般支持的东西,比如JSON。这是从哪里来的?它最初是如何变成字符串的?我会从键中删除引号。否则,您必须使用$second[“\”fr\”]访问它们代码>我将从键中删除引号。否则,您必须使用$second[“\”fr\”]访问它们代码>谢谢!这对我来说是最好的答案。我需要这个!就像@putvande my$str变量不是用户输入,由php生成。是的,如果使用eval
进行用户输入,可能会出现安全漏洞。谢谢!这对我来说是最好的答案。我需要这个!就像@putvande my$str变量不是用户输入,由php生成。是的,如果使用eval
进行用户输入,可能会出现安全漏洞。