2017-10-08 17 views
0

私はこのような文字列があります。文字列を配列に変換するにはどうすればよいですか?

$str = '[{"file_id":"AgADBAADX6oxGyqs0FJLW3rZ3g6_fDnO-RkABB0pg6HTwdv7EqUBAAEC","file_size":1347,"file_path":"photos\/file_2.jpg","width":90,"height":75},{"file_id":"AgADBAADX6oxGyqs0FJLW3rZ3g6_fDnO-RkABIMbRhad2WVdE6UBAAEC","file_size":17588,"width":320,"height":265},{"file_id":"AgADBAADX6oxGyqs0FJLW3rZ3g6_fDnO-RkABHSo-WKlRRfBEaUBAAEC","file_size":18480,"width":330,"height":273}]'; 

私はそれでアイテムにアクセスするにはどうすればよいですか?


正規表現を使用して、/"file_id":"(.*?)"/のようなものを選択できます。しかし、それはまったくきれいではありません。上記の文字列の配列(またはオブジェクト)を作る方法はありますか?

答えて

3

jsonの文字列です。
json_decodeでデコードする必要があります。
2番目の引数(true)は配列にすることです。

$str = '[{"file_id":"AgADBAADX6oxGyqs0FJLW3rZ3g6_fDnO-RkABB0pg6HTwdv7EqUBAAEC","file_size":1347,"file_path":"photos\/file_2.jpg","width":90,"height":75},{"file_id":"AgADBAADX6oxGyqs0FJLW3rZ3g6_fDnO-RkABIMbRhad2WVdE6UBAAEC","file_size":17588,"width":320,"height":265},{"file_id":"AgADBAADX6oxGyqs0FJLW3rZ3g6_fDnO-RkABHSo-WKlRRfBEaUBAAEC","file_size":18480,"width":330,"height":273}]'; 


$arr = json_decode($str, true); 
Var_dump($arr); 

https://3v4l.org/9BFIC

+0

ありがとう! –

+0

@マーティン問題ありません。 – Andreas

-1

Explode( "、{"、$ str);上記のために動作します。

各ファイルの配列値を取得します。

+1

これは非常に悪いソリューションです。これはjson文字列であり、そのように扱われるべきです。使用できない文字列を含む配列の結果を示唆するような爆発 – vrijdenker