###環境
・PHP7
・MySQL
・リレーショナルデータベース
###やろうとしていること
・CSV出力のための整形
・dbodata02をdbo02にへ上書き
・dbodata20sをdbo19とdbo21の間に挿入
どのように整形するのが最適でしょうか?
・一度、個別に整形してから配列を並び替える方法
http://qiita.com/khsk/items/090291c42ee6e636c6c9
のどちらかだと考えています。
他に良い方法がありましたら、教えていただけると助かります。
よろしくお願いします。
以下、データとCSV出力のための整形コードです。
###出力データ
PHP
1[ 2'id' => (int) 15, 3'dbo02' => 1, 4'dbo18' => 'テキスト', 5'dbo19' => (int) 1, 6'dbo21' => (int) 1, 7'dbodata20s' => [ 8 (int) 0 => [ 9 'dbo20_id' => (int) 2, 10 'name' => '電車', 11 '_joinData' => [ 12 'id' => (int) 41, 13 'dbackorders_id' => (int) 15, 14 'dbo20_id' => (int) 2 15 ] 16 ], 17 (int) 1 => [ 18 'dbo20_id' => (int) 3, 19 'name' => 'バス', 20 '_joinData' => [ 21 'id' => (int) 42, 22 'dbackorders_id' => (int) 15, 23 'dbo20_id' => (int) 3 24 ] 25 ], 26 ], 27 'dbodata02' => [ 28 'dbo02_id' => (int) 1, 29 'name' => '10代' 30 ] 31]
###CSV出力のための整形コード
PHP
1foreach ($results as $data) { 2 $dbo02 = ['dbo02' => $data['dbodata02']['name']]; 3 4 $results = []; 5 foreach($data['dbodata20s'] as $key => $value){ 6 $results[] = $data['dbodata20s'][$key]['name']; 7 } 8 $resultStr = implode(';',$results); 9 $dbo20 = ['dbo20' => $resultStr]; 10 11 $data = array_replace($data,$dbo02,$dbo20); 12 13 unset($data['dbodata02']); 14 unset($data['dbodata20s']); 15 16 fputcsv($fp, $data); 17 } 18```
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。