下記のようなコードでjson形式のファイルをCSVにしたいんですがtest.csvをエクセルで開くとrangeの部分がarrayと表示されてしまいます。
25,山田,1984-07-23,O,サッカー,千葉,array
foreachの中に、
if($key == "range"){
$recordValue = $data["result"]["emplo"]["range"];
}
のように記述して試しているのですが行き詰ってしまいました。
25,山田,1984-07-23,O,サッカー,千葉,2002-04-01,2019-07-02
のように出力したいと思っています。
ご教示お願いします。
json.json
1{ 2 "result": { 3 "emplo": [ 4 { 5 "id": "25", 6 "name": "山田", 7 "birthday": "1984-07-23", 8 "blood": "O", 9 "hobby": "サッカー", 10 "pref": "千葉", 11 "range": { 12 "from": "2002-04-01", 13 "to": "2019-07-02" 14 } 15 }, 16 { 17 "id": "30", 18 "name": "田中", 19 "birthday": "1990-10-21", 20 "blood": "A", 21 "hobby": "DIY", 22 "pref": "栃木", 23 "range": { 24 "from": "2011-05-01", 25 "to": "2019-07-30" 26 } 27 } 28 ] 29 } 30}
php
1<?php 2$str = file_get_contents("json.json"); 3$data = json_decode($str, true); 4 5$filew = fopen('C:\xxxx\xxxxx\test.csv', 'w'); 6 7foreach ($data["result"]["emplo"] as $key => $recordValue) { 8 $recordValue = mb_convert_encoding($recordValue, "SJIS", "UTF-8"); 9 fputcsv($filew, $recordValue); 10 11} 12 13// ファイルを閉じる 14fclose($filew);
回答2件
あなたの回答
tips
プレビュー