我需要从csv中删除一些列和第一行,并将结果放在新的csv文件中。 我已经尝试过在堆栈中找到的一些sugesstions,但它们都不适合我。 我的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);
}
答案 0 :(得分:2)
fgetcsv的默认分隔符是,你可以在php手册中看到http://php.net/manual/en/function.fgetcsv.php
如果您的csv文件使用;对于分隔符,那么你应该改变行
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<p><label>character 1:</label><input id="s1" class="q1 inputs letter square border_black" maxlength="1" type="text"/></p>
<p><label>character 2:</label><input id="s1" class="q1 inputs letter square border_black" maxlength="1" type="text"/></p>
<p><label>character 3:</label><input id="s1" class="q1 inputs letter square border_black" maxlength="1" type="text"/></p>
<p><label>character 4:</label><input id="s1" class="q1 inputs letter square border_black" maxlength="1" type="text"/></p>
<p><label>character 5:</label><input id="s1" class="q1 inputs letter square border_black" maxlength="1" type="text"/></p>
<p><label>character 6:</label><input id="s1" class="q1 inputs letter square border_black" maxlength="1" type="text"/></p>
<p><label>character 7:</label><input id="s1" class="q1 inputs letter square border_black" maxlength="1" type="text"/></p>
<p><label>word:</label><input class="solution_2" value="" class="form-control" type="text" name="date"></p>
到
while (false !== ($data = fgetcsv($ih))) {
默认机箱是&#34;
如果您未在数据中使用附件,则应将行更改为
while (false !== ($data = fgetcsv($ih, 0, ";"))) {
至于排除csv文件的第一个条目,你可以这样做
while (false !== ($data = fgetcsv($ih, 0, ";", ""))) {