簡體   English   中英

PHP使用fputcsv CSV在每一行的列中寫入相同的數據

[英]PHP use the fputcsv CSV to write same data in column for each row

我正在嘗試為CSV的每一行添加一個新數據“示例”。 CSV的行會有所不同。 標題列名稱將為ExempleRow。沒有分隔符,只有分隔符是半冒號。

我正在使用fputcsv,它必須具有一個數組,以用所需的數據填充csv文件。 但是在我的情況下,每個csv的行數都會改變。

到目前為止,它添加了新列,但我不明白如何在該列的每一行中放置相同的值?

<?php
$newCsvData = array(); // here should I specify the same data value "exemple data" for each line ? but how ?

if (($handle = fopen("exemple.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 9999, ";")) !== FALSE) {
        $data[] = 'ExempleRow';
        $newCsvData[] = $data;
    }
    fclose($handle);
}

$handle = fopen('exemple.csv', 'w');

foreach ($newCsvData as $line) {
   fputcsv($handle, $line,';',' ');
}

fclose($handle);

?> 

如果要將數組的鍵顯示為第一列,則可以執行此操作。 如果您沒有關聯數組,或者出於某種原因要對列標題進行硬編碼,則只需更改硬編碼數組的array_keys($line)

$handle = fopen('exemple.csv', 'w');
$keys = false;

foreach ($newCsvData as $line) {
   if ($keys === false) {
       //$header = array('HeaderOne', 'HeaderTwo', 'HeaderThree', 'HeaderFour'); Use this if you want to hard code your headers
       fputcsv($handle, array_keys($line), ';', '');
       $keys = true;
   }
   fputcsv($handle, $line,';',' ');
}

fclose($handle);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM