下記のようなコードで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
{ "result": { "emplo": [ { "id": "25", "name": "山田", "birthday": "1984-07-23", "blood": "O", "hobby": "サッカー", "pref": "千葉", "range": { "from": "2002-04-01", "to": "2019-07-02" } }, { "id": "30", "name": "田中", "birthday": "1990-10-21", "blood": "A", "hobby": "DIY", "pref": "栃木", "range": { "from": "2011-05-01", "to": "2019-07-30" } } ] } }
php
<?php $str = file_get_contents("json.json"); $data = json_decode($str, true); $filew = fopen('C:\xxxx\xxxxx\test.csv', 'w'); foreach ($data["result"]["emplo"] as $key => $recordValue) { $recordValue = mb_convert_encoding($recordValue, "SJIS", "UTF-8"); fputcsv($filew, $recordValue); } // ファイルを閉じる fclose($filew);
まだ回答がついていません
会員登録して回答してみよう