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