首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP fgetcsv -跳过列?

PHP fgetcsv -跳过列?
EN

Stack Overflow用户
提问于 2012-06-10 07:53:09
回答 3查看 3.3K关注 0票数 0

我正在尝试导入CSV,并且能够删除列,并且只能导入选定的列。

因此,我有一个由选定字段和CSV文件组成的数组。我可以删除行,但在跳过列时遇到问题。

下面是我用来显示表的内容,只是尝试删除列。这里没什么特别的。只需要知道在哪里放置任何if语句,或任何东西。小贴士,建议,样品都欢迎!

代码语言:javascript
复制
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
                        echo("<tr>\r\n");
                        foreach ($data as $index=>$val) {
                        echo("\t<td>$val</td>\r\n");
                        } 
                        echo("</tr>\r\n");
               } //end while

我应该把只允许剩余行的if语句放在哪里?我试过in_array,array_diff等--似乎什么都不起作用?

现在我已经输入了这段代码,我是否应该在插入之前使用PHP删除这些列?最佳实践是什么?

谢谢jt

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-10 08:35:29

您可以设置一个包含要显示的列的数组(在我的ex1和3中),并使用foreach的关键部分来了解您正在扫描的列:

代码语言:javascript
复制
<?
$handle = fopen("test.csv", "r");

$columns = array(1,3);
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        echo("<tr>\r\n");
        foreach ($data as $index=>$val) {
                if (in_array($index+1, $columns)) {
                        echo("\t<td>$val</td>\r\n");
                }
        }
        echo("</tr>\r\n");
} //end while

?>
票数 0
EN

Stack Overflow用户

发布于 2012-06-10 08:30:52

尝试:

代码语言:javascript
复制
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
    echo("<tr>\r\n");

    foreach ($data as $index=>$val) {
        if($index != BADINDEX) {
            echo("\t<td>$val</td>\r\n");
        }   
    }
    echo("</tr>\r\n");
}

其中,BADINDEX是要删除的列号(第一列为0)。

因为从fgetcsv得到的是行而不是列,所以只需要为打印的每一行过滤出所需的列,这是通过检查foreach块中的索引来完成的。

票数 0
EN

Stack Overflow用户

发布于 2017-09-26 07:15:07

这是一个古老的帖子,但我发现了另一种可能对某人有帮助的方法:

代码语言:javascript
复制
$file = fopen($yourcsvfile, 'r');

    while (($result = fgetcsv($file, 1000, ",")) !== false)
    {
        $temp = array();
        $temp[] = $result[1]; // the column you want in your new array
        $temp[] = $result[2]; // the column you want in your new array
        $csv1[] = $temp;
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10965436

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档