массивы — PHP использует fputcsv CSV для записи одинаковых данных в столбец для каждой строки

Я пытаюсь поставить новые данные «пример» для каждой строки 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);

?>

0

Решение

Если вы хотите показать ключи массива в качестве первого столбца, вы можете сделать это. Если у вас нет ассоциативного массива или вы хотите жестко закодировать заголовки столбцов по какой-либо причине, вы можете просто изменить 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);
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]