2016-12-17 111 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()方法。