2011-02-10 76 views
1

我有有一个词来形容这样的越来越空值,而从CSV文件

word1 
word2 
word3 

而各行的csv文件阅读有下面的代码读取数据:

$arr = array(); 
$fh = fopen('path/to/file', 'r'); 
while (($rows = fgetcsv($fh)) !== false) { 
print_r($rows); 
if (!in_array($rows[0], $arr)) 
    $arr[] = "'".trim($rows[0])."'"; 
} 
fclose($fh); 
print_r($arr); 

的问题是即时获取空行/ null为$ rows [0]和im相当肯定数据在那里。

Array ([0] =>) 
Array ([0] =>) 
Array ([0] =>) 

Array ([0] => '' [1] => '' [2] => '' [3] => '') 

任何帮助将不胜感激。

+0

PHP版本?如果<5,那么行长度参数不是可选的(?) – horatio 2011-02-10 20:57:41

+0

PHP 5.3.1,所以它的可选;} – madkris24 2011-02-10 21:06:21

回答

1

你正在尝试将单词读入数组?用以下全部代替:

$arr = file('/path/to/file'); 
print_r($arr); 
+0

...并删除重复项,只需使用`array_unique()`。 – jeroen 2011-02-10 20:53:22

+0

我需要他们是单一的,除了做foreach循环之外的任何想法吗?似乎没有选项 – madkris24 2011-02-10 21:00:19

1

无法重现。我假设你的文件格式有问题。最有可能的是顶部有一条空行(我不太确定,但可能会通过!== false测试)。

最好尝试:

$arr = array_map("str_getcsv", file("words.csv")); 
print_r($arr); 

如果你需要重新添加引号,做一个独立的循环。

1

的文件读取部分已经回答了,但关于你的循环加引号,你可以使用array_walk()

function add_quotes(&$item) 
{ 
    $item = "'" . $item . "'"; 
} 

array_walk($arr, "add_quotes");