'Undefined index, while trying to access csv column
My csv file looks like this:
"Col1";"Col2";"Col3";Col4;Col5;
2869;"=""510015171""";"=""7393077918""";Test;"Name";
After executing this code:
$reader = Reader::createFromPath('/file.csv');
$reader->setDelimiter(';');
$records = $reader->getRecords();
foreach ($records as $record) {
dump($record['Col1']);
}
I am getting the following error:
WARNING [php] Notice: Undefined index: Col1
The format of CSV file is correct because it opens in libre office correctly.
Solution 1:[1]
This is mainly due to the parser you are using not being able to process quoted and unquoted strings in the same line
to circumvent this you can use the csv parser that comes with PHP from https://www.php.net/manual/en/function.fgetcsv.php
$row = 1;
if (($handle = fopen("test.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
$num = count($data);
echo "<p> $num fields in line $row: <br /></p>\n";
$row++;
for ($c = 0; $c < $num; $c++) {
echo $data[$c] . "<br />\n";
}
}
fclose($handle);
}
You can paste this in a separate file, create a csv with name test.csv and your content
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Richard Muvirimi |
