Пример CSV:
Sally Whittaker,2018,McCarren House,312,3.75
Cushing House,148,3.52
Prescott House,17-D,3.20
Sandy Allen,2019,Oliver House,108,3.48
Вторая и третья линия - первые два элемента отсутствует. Код:
$file=file("csv.csv");
$str='';
foreach ($file as $line) {
$liner=explode(',',$line);//use your own separator
if(count($liner)<5) {
array_unshift($liner, 'item1','item2');//put items at the start
$str.= implode(',', $liner);
}
else {
$str.=implode(',', $liner);
}
}
file_put_contents('csv.csv', $str);
Выход CSV:
Sally Whittaker,2018,McCarren House,312,3.75
item1,item2,Cushing House,148,3.52
item1,item2,Prescott House,17-D,3.20
Sandy Allen,2019,Oliver House,108,3.48
EDIT: если CSV (возможно), имеют такую структуру:
Sally Whittaker,2018,McCarren House,312,3.75
,ddd,Cushing House,148,3.52
,xxxx,Prescott House,17-D,3.20
Sandy Allen,2019,Oliver House,108,3.48
код может быть:
$file=file("csv.csv");
$str='';
foreach ($file as $line) {
$liner=explode(',',$line);
if($liner[0]=='') { //check if first item is empty!
$liner[0]='item';
}
$str.=implode(',', $liner);
}
file_put_contents('csv.csv', $str);
Возможный дубликат [Как записать значения массива в файл csv в PHP?] (Http://stackoverflow.com/questions/4290693/how-to-write-array-values-into-a-csv-file- in-php) – eliasah
нет. im не работает с массивами. У меня есть файл csv, некоторые строки имеют первое значение, некоторые - нет. если он не имеет первого значения, мне нужно что-то написать в этой строке, как первое значение. –