項目1,項目2,,項目3,項目4 jhon,USA,1,man,yes maria,ENG,2,woman,no ewa,SPA,3,woman,yes
というcsvをPHPの処理で「headerが空の列を削除」させ
項目1,項目2,項目3,項目4 jhon,USA,man,yes maria,ENG,woman,no ewa,SPA,woman,yes
このようにしたいと思っております。
行の削除は調べたら出てくるのですが、列の削除が意外と見つからなかったので質問させていただきました。
よろしくお願いいたします。
コード追加
①ヘッダーが空のindexを抽出
②ヘッダーが空の列はヘッダー含め削除
の順序で実装
$fp = new SplFileObject('test.csv'); $fp->setFlags(SplFileObject::READ_CSV); $data = array(); foreach ($fp as $line) { $data[] = $line; } //ヘッダー空のindex取得 $empty_column_index = array(); foreach($data[0] as $i => $header) { if($header == "") { $empty_column_index[] = $i; } } foreach($data as $row) { //ヘッダー空の列は削除 //Warning: Illegal offset type in unsetのエラー unset($row[$empty_column_index]); //indexを詰める $target = array_values($target); } var_dump($target);
コード内にも記載しましたが、unsetにて複数のカラムを削除しようとする
→変数をそのまま入れてもエラーとなる
ここでどのように書けば良いのか不明です。。
よろしくお願いいたします
回答3件
あなたの回答
tips
プレビュー