何最初のセパレータとして', '
を使用して、explode()
機能で文字列を爆発について:その後、
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)
...
そして:
$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);
あなたの配列になるだろう。このように見えますそのリストを反復して、=>
の各辺の各項目を一致させ、結果のデータのキーとして=>
の最初の辺を使用して、値として第2:あなたを得るでしょう
$result = array();
foreach ($items as $item) {
if (preg_match("/'(.*?)' => '(.*?)'/", $item, $matches)) {
$result[ $matches[1] ] = $matches[2];
}
}
var_dump($result);
:
しかし、真剣に、あなたは、このようなひどい形式でデータを保存しないでください。print_r()
は、データを表示するためになされたものであり、デバッグ目的のために - それを保存せずに、後で再ロードしてください!
テキストファイルにデータを保存する場合
は、両者がそれぞれ
unserialize()
または
json_decode()
を、使用して復元することができ
serialize()
または
json_encode()
、使用しています。
これが一度だけの場合は、コピーしてファイルに貼り付け、PHPで解析できるようにします。それ以外の場合は 'eval()'と考えるかもしれませんが、非常に注意してください。 – Brad
もしあなたが再びapiからデータを取り出せれば明らかな解決策は、配列を 'serialize()'する保存プロセスを変更することです。ファイルのテキストを取得して 'unserialize($ text)'しなければなりません。 – prodigitalson