[英]PHP Remove columns from csv
我需要從csv中刪除一些列和第一行,並將結果放入新的csv文件中。 我已經嘗試過在堆棧上找到一些建議,但沒有一個對我有用。 我的csv有9列,但我只需要5列。 在這里找到刪除列的最佳解決方案似乎是我將在下面發布的解決方案,但是我只在結果文件和某些數據中得到逗號。 我的csv中的數據帶有';'標記 我希望任何人都能幫助我。
這是我玩過的代碼:
<?php
$input = 'gesamtbestand.csv';
$output = 'mw-stock.csv';
if (false !== ($ih = fopen($input, 'r'))) {
$oh = fopen($output, 'w');
while (false !== ($data = fgetcsv($ih))) {
// this is where you build your new row
$outputData = array($data[1], $data[2], $data[4], $data[5], $data[8]);
fputcsv($oh, $outputData);
}
fclose($ih);
fclose($oh);
}
fgetcsv的默認分隔符是,如您在php手冊http://php.net/manual/en/function.fgetcsv.php中所見
如果您的csv文件使用; 對於定界符,則應更改行
while (false !== ($data = fgetcsv($ih))) {
至
while (false !== ($data = fgetcsv($ih, 0, ";"))) {
默認附件為“
如果您未在數據中使用附件,則應將行更改為
while (false !== ($data = fgetcsv($ih, 0, ";", ""))) {
至於排除csv文件的第一個條目,您可以執行此操作
$i=0;
while (false !== ($data = fgetcsv($ih))) {
// this is where you build your new row
if ($i!=0){
$outputData = array($data[1], $data[2], $data[4], $data[5], $data[8]);
fputcsv($oh, $outputData);
}
$i++;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.