Question

I have a very basic question about fputcsv.

My goal is to create a csv file where for each row the first column is the key and the second the value. The result of print_r on my table gives something like this Array ( [city_name: London ] => 8000 [city_name: Dublin ] => 8415

I thought i had to use array_keys and array_values like this :

fputcsv ($fp, array_keys($tablepeople)); 
fputcsv ($fp, array_values($tablepeople));

With this code my csv file got this shape : Name1 Name2 Value1 Value2

How can I do to get this one: Name1 Value 1 Name2 Value2

Where name is the key of the array and value the value.

Could you help me please ?

Was it helpful?

Solution

You have to create an array for each line in your CSV file.

$line = array($key, $value);
fputcsv($out, $line);

OTHER TIPS

As you can see from the man page here http://php.net/fputcsv you can use this function to add a line in a csv file (so all the columns for one row)

Considering that the first parameter is the file pointer and the second is an array with all the values for one line you can create the array like this:

foreach ($tablepeople as $key=>$value)
{
    fputcsv($fp, array($key, $value);
}
$csv_array = Array();
foreach($tablepeople as $k => $v) {
    $csv_array[] = Array($k, $v);
}
fputcsv($fp, $csv_array);
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top