什麼第一爆炸字符串與explode()
功能,採用', '
作爲分隔符:
$str = "'middle_initial' => '', 'sid' => '1419843', 'fixed' => 'Y', 'cart_weight' => '0', 'key' => 'ABCD', 'state' => 'XX', 'last_name' => 'MNOP', 'email' => '[email protected]', 'city' => 'London', 'street_address' => 'Sample', 'first_name' => 'Sparsh',";
$items = explode(', ', $str);
var_dump($items);
這將讓你的數組看起來像這樣:
array
0 => string ''middle_initial' => ''' (length=22)
1 => string ''sid' => '1419843'' (length=18)
2 => string ''fixed' => 'Y'' (length=14)
3 => string ''cart_weight' => '0'' (length=20)
...
而且,當時,迭代該列表,匹配=>
每一邊的每個項目,並使用=>
的第一面作爲結果數據的關鍵字,而第二個作爲值:
$result = array();
foreach ($items as $item) {
if (preg_match("/'(.*?)' => '(.*?)'/", $item, $matches)) {
$result[ $matches[1] ] = $matches[2];
}
}
var_dump($result);
這將讓你:
但是,嚴重的是,你不應該將數據存儲在這樣一個可怕的格式:print_r()
進行到顯示數據,爲了調試的目的 - 不要存儲它以後重新加載它!
如果你想將數據存儲到一個文本文件,使用serialize()
或json_encode()
,它可以同時分別使用unserialize()
或json_decode()
,可以恢復。
如果這是一次性的事情,您可以將其複製並粘貼到文件中並讓PHP解析它。否則,你可能會考慮'eval()',但如果你這樣做的話要非常小心。 – Brad
那麼,如果你可以再次從api中獲取數據,那麼顯而易見的解決方案就是將你的保存過程修改爲'serialize()'數組,然後你只需要獲取文件的文本並執行'unserialize($ text)'' – prodigitalson