1
我有这个字符串:PHP〜字符串转换为数组
array('type' => 'button', 'value' => 35);
简单的问题:我怎么能这个字符串转换成数组?
的问题是,eval
吮吸和explode(",",$string)
渔获有时错误的逗号:
array('t,y,p,e' => 'bu,t,t,o,n', 'va,,,l,,ue' => '3,,,,,5');
我有这个字符串:PHP〜字符串转换为数组
array('type' => 'button', 'value' => 35);
简单的问题:我怎么能这个字符串转换成数组?
的问题是,eval
吮吸和explode(",",$string)
渔获有时错误的逗号:
array('t,y,p,e' => 'bu,t,t,o,n', 'va,,,l,,ue' => '3,,,,,5');
我怀疑你会发现一个函数读取一个字符串作为代码的eval之外。因此,假如你总是有相同的刚性结构,你可以做这样的事情 -
$str = "array('type' => 'button', 'value' => 35)";
preg_match_all('/\(.*?\)/', $str, $arr);
if(isset($arr[0]))
{
$array = array();
$items = explode(",", substr($arr[0][0], 1, -1));
foreach($items AS $i)
{
$kv = explode(" => ", $i);
$array[str_replace("'", "", trim($kv[0]))] = str_replace("'", "", trim($kv[1]));
}
print_r($array);
}
这是非常可怕的,但它是一个快速黑客提取从字符串数组。我并不是说这对你的问题是一个“好的”解决方案,但它是一个快速解决方案,可以用作你提供的例子。
随意提问或通过各种方式建议更好的解决方案。
字符串的来源是什么? – 2013-05-30 23:48:48
数组('type'=>'button','value'=> 35)不是一个字符串,它是一个数组。你是指数组中的字符串吗? –
@EduardoMoratto我认为他的意思是这个字符串的值。 – christopher