2016-12-17 23 views
0

「、」区切り文字で区切られた次の文字列をPHPの配列に分割するにはどうすればよいですか?PHPで区切られた区切り文字で区切られた文字列

文字列:

[{"sku":"PAP","name":"Butter","price":23,"quantity":2},{"sku":"PER","name":"Garlic","price":25,"quantity":1}] 

必要な配列:

$array[0]= "sku":"PAP","name":"Butter","price":23,"quantity":2 

$array[1]= "sku":"PER","name":"Garlic","price":25,"quantity":1 

それは配列要素に存在しているので、私は '' 区切り文字に基づいて分割することはできませんよ。

+2

文字列はJSONとよく似ています。したがって、 'json_decode'関数を使うべきです:' $ array = json_decode($ json、true); ' –

+0

正規表現ではなく、ここでJSONパーサを使うべきです。 JSONがネストされている場合はさらに真実です。 –

答えて

0

@ Ruslan Osmanovが正しいです。 JSONのようにデコードするだけです。

<?php 
    $a='[{"sku":"PAP","name":"Butter","price":23,"quantity":2},{"sku":"PER","name":"Garlic","price":25,"quantity":1}]'; 
    print_r(json_decode($a)); 
?> 

結果:

Array 
(
    [0] => stdClass Object 
     (
      [sku] => PAP 
      [name] => Butter 
      [price] => 23 
      [quantity] => 2 
     ) 

    [1] => stdClass Object 
     (
      [sku] => PER 
      [name] => Garlic 
      [price] => 25 
      [quantity] => 1 
     ) 

) 
+0

助けていただきありがとうございます。配列に各要素を割り当てる方法を教えてください。デコードされたjson文字列の個々の要素にアクセスできません – Arun

0

まず、不要な文字を削除します。

$str=str_replace("[{","",$str); 
$str=str_replace("}]","",$str); 

その後、スプリット:

$array=preg_split("},{",$str); 
0

文字列がJSONでのようなので、使用してくださいに見えますPHPのjson_decode()メソッド。

関連する問題