2011-02-10 97 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");