我有一个csv文件,每行都有一个单词
word1
word2
word3
并使用以下代码来读取数据:
$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);
问题是我为$ rows [0]获取空字符串/ null并且我非常确定数据是否存在。
Array ( [0] => )
Array ( [0] => )
Array ( [0] => )
Array ( [0] => '' [1] => '' [2] => '' [3] => '' )
非常感谢任何帮助。
答案 0 :(得分:1)
您是否正在尝试将这些单词读入数组?用以下内容替换所有内容:
$arr = file('/path/to/file');
print_r($arr);
答案 1 :(得分:1)
无法重现。我假设你的文件格式有问题。很可能顶部有一个空行(我不太确定,但可能无法通过!== false
测试。)
更好的尝试:
$arr = array_map("str_getcsv", file("words.csv"));
print_r($arr);
如果您需要重新添加引号,请执行单独的循环。
答案 2 :(得分:1)
文件阅读部分已经得到解答,但关于添加引号的循环,您可以使用array_walk()
:
function add_quotes(&$item)
{
$item = "'" . $item . "'";
}
array_walk($arr, "add_quotes");