2
我正在嘗試使用兩個數組中的值編寫csv文件。下面的代碼:fputcsv:在每個陣列之後在csv文件中清空行
<?php
fopen('output.csv','w');
$merged_fields = array_combine($authors, $ids);
$range = count($merged_fields);//gives number of elements in array
$name = array_keys($merged_fields);
$id = array_values($merged_fields);
$name = str_replace(',',', ',$name);
for ($a = 0; $a <=$range; $a++) {
//filter out rows where id = '000000'
if($id[$a] == '000000'){
continue;
}
fputcsv($fp, array_filter(array($name[$a], $id[$a])));
}
}
fclose($fp);
?>
如果原始陣列是"Smith, John" => "888888", "Smith, Jane"=>"777777"
,和下一個陣列是"Jones,John"=>"999999"
有每一個陣列之後的行之後的空間中,所以在CSV輸出結束:
"Smith, John",888888
"Smith, Jane",777777
"Johnes, John",999999
我將使用此csv導入數據,並需要從那裏獲取額外的行。我已經嘗試將「array_filter」應用到數組的其他部分,因爲它看起來有一個空的元素在那裏,但那沒有奏效。
我不確定,但我認爲這可能是預期的行爲。 'fputcsv'將以每個文檔的新行字符結束,所以考慮到這一點,似乎期望每個循環包含'fputcsv'函數。 – camelCase
您可以在打開文件的位置添加代碼嗎?循環中有一個錯誤(你應該得到一個錯誤):在'for'循環中'$ a <= $ range'應該是'$ a <$ range'。另外變量'$ id'還有一點是未定義的。它應該是'$ empid'嗎? – trincot
@trincot - 我清理了這些變量,爲了清晰起見我改變了它們,並留下了一對夫婦。當我運行我的代碼時,它們都是正確的。我添加了一個fopen語句。當超出數組範圍時,我會在$ a變量中獲取未定義值的「通知」。 – mattrweaver