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