我正在開發一個PHP應用程序,並通過將字符串數組轉換爲對象數組產生問題。我嘗試使用(數組)強制將字符串轉換爲數組,但它不起作用。這裏是我的字符串(調試):將PHP字符串數組轉換爲數組對象
string '['method'=>'post','action'=>'#']' (length=32)
正如你所看到的,這是一個完美的陣列成一個字符串,我想那個字符串轉換。
我的問題很簡單,PHP有一個函數直接將字符串轉換爲數組(我認爲不是)或者我必須通過使用爆炸轉換我的字符串?
我正在開發一個PHP應用程序,並通過將字符串數組轉換爲對象數組產生問題。我嘗試使用(數組)強制將字符串轉換爲數組,但它不起作用。這裏是我的字符串(調試):將PHP字符串數組轉換爲數組對象
string '['method'=>'post','action'=>'#']' (length=32)
正如你所看到的,這是一個完美的陣列成一個字符串,我想那個字符串轉換。
我的問題很簡單,PHP有一個函數直接將字符串轉換爲數組(我認爲不是)或者我必須通過使用爆炸轉換我的字符串?
從PHP 5.4,你可以簡單的eval: 的eval(「\ $ F = [」方法 '=>' 後」, '動作'=> '#'];「); var_dump($ f);
對於老年人,您必須修正字符串,將第一個「[」更改爲「數組(」,最後一個「]」更改爲「)」。
感謝您的快速和正確的答覆!我忘了那個eval函數;) – houceni
小心使用eval,雖然_never ever_與用戶輸入一起使用它;) – SixteenStudio
這裏是你如何定義一個數組。 可是我在寫代碼之前,請看看manuels
$arrayName = array('method' => 'post', 'action' => '#');
輸出將讀取
array (size=2)
'method' => string 'post' (length=4)
'action' => string '#' (length=1)
有點重複,您可以使用preg_split
和foreach()
,使這項工作:
$str = "['method'=>'post','action'=>'#']";
$splitArray = preg_split("/[,']+/", $str);
foreach ($splitArray as $k => $val) {
if ($val == '=>') {
$newArr[$splitArray[$k - 1]] = $splitArray[$k + 1];
}
}
var_dump($newArr);
/*newArr
Array
(
[method] => post
[action] => #
)*/
如何/你在哪裏得到這個字符串? –
說真的,我會考慮改變你的應用程序中的某些東西,如果有的話你需要這樣做。 –