Instead of writing out values consider using 'fputcsv()'.
This may solve your problem immediately.
function array2csv($data, $delimiter = ',', $enclosure = '"', $escape_char = "")
{
$f = fopen('php://memory', 'r+');
foreach ($data as $item) {
fputcsv($f, $item, $delimiter, $enclosure, $escape_char);
}
rewind($f);
return stream_get_contents($f);
}
$list = array (
array('aaa', 'bbb', 'ccc', 'dddd'),
array('123', '456', '789'),
array('"aaa"', '"bbb"')
);
var_dump(array2csv($list));
/*
I hope it will help you.
Namaste
Stay Home Stay Safe
*/
public function csvToArray($filename = '', $delimiter = ','){
if(!file_exists($filename) || !is_readable($filename))
return false;
$header = null;
$data = array();
if(($handle = fopen($filename, 'r')) !== false){
while(($row = fgetcsv($handle, 1000, $delimiter)) !== false){
if(!$header)
$header = $row;
else
$data[] = array_combine($header, $row);
}
fclose($handle);
}
return $data;
}
$lines =file('CSV Address.csv');
foreach($lines as $data)
{
list($name[],$address[],$status[])
= explode(',',$data);
}
<?php
/* Map Rows and Loop Through Them */
$rows = array_map('str_getcsv', file('file.csv'));
$header = array_shift($rows);
$csv = array();
foreach($rows as $row) {
$csv[] = array_combine($header, $row);
}
?>
$array = $fields = array();
$handle = @fopen("yourcsvfilename.csv", "r");
if($handle){
while(($row = fgetcsv($handle, 4096)) !== False){
if(empty($fields)){
$fields = $row;
continue;
}
foreach($row as $k=>$value){
$array[$i][$fields[$k]] = $value;
}
$i++;
}
if(!feof($handle)){
echo "Error: unexpected fgets() fail
";
}
fclose($handle);
}
print_r($array);