在csv中删除列时出现PHP问题

时间:2017-12-06 10:21:48

标签: php csv multiple-columns

我使用下面的php脚本从csv中删除一些列,将它们命名为new并将其另存为新文件。 它适用于我制作的文件。 现在我需要和另一个csv做同样的事情,但我不知道什么是错的。我总是在第一列中得到一个逗号。

这就是我所拥有的,但它并没有真正发挥作用。

<?php
$input = 'http://***/original.csv';
$output = 'new.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[4], $data[0]);
    fputcsv($oh, $outputData);
}

fclose($ih);
fclose($oh);
}

original.csv看起来:

subproduct_number   barcode        stock    week_number qty_estimate    productid   variantid
05096470000         4024144513543   J                   3               6           35016
ae214               848518017215    N       23          0               7           35015
05097280000         4024144513727   J                   1               32          34990

分隔符是&#39 ;;&#39;。在正在运行的文件中使用相同的分隔符

但是这里会出错,因为我保存的new.csv看起来像这样:

subproduct_number   barcode        stock    week_number qty_estimate    productid   variantid
,05096470000        4024144513543   J                   3               6           35016
,ae214              848518017215    N       23          0               7           35015
,05097280000        4024144513727   J                   1               32          34990

但我需要的是一个看起来像这样的新csv:

  qty_estimate  subproduct_number
  3             05096470000
  0             ae214
  1             05097280000

如您所见,我只需要5.列($ data [4])作为第一列,第一列($ data [0])作为第二列。

我希望有人可以指出我的方向。 感谢

1 个答案:

答案 0 :(得分:1)

你可以这样做:

print_r($schedule);die;