PHP экспортирует массив данных в столбец данных в CSV

#php #arrays #csv #foreach #export-to-csv

#php #массивы #csv #для каждого #экспорт в CSV

Вопрос:

Я пытаюсь экспортировать данные о национальности в CSV. Данные о моей национальности хранятся в массиве. Однако, когда я экспортирую его, мой вывод CSV показывает эту ошибку «Предупреждение: fputcsv() ожидает, что параметр 2 будет массивом». Могу ли я узнать, как я могу отобразить данные о моей национальности в столбце CSV?

мой код:

 $filename = "nationality_list.csv"; // Create file name
$array_nat = array('BANGLADESH','CAMBODIA','CHINESE','DUTCH','FILIPINO','FRENCH','GERMAN','INDIAN','INDONESIA','ITALY','JAPANESE','KOREAN','LITHUANIAN','MALAYSIA','MYANMAR','NEW ZEALAND','RUSSIAN','SINGAPOREAN','SRI LANKAN','THAILAND','UK','USA');
$f = fopen('php://memory', 'w');

$fields = array('Nationality_list');
        
fputcsv($f, $fields);
    
foreach($array_nat as $nat){
    fputcsv($f, $nat);
}

//move back to beginning of file
fseek($f, 0);
//set headers to download file rather than displayed
header('Content-Type: text/csv');
header('Content-Disposition: attachment; filename="' . $filename . '";');
//output all remaining data on a file pointer
fpassthru($f)
  

Желаемый результат в формате CSV

введите описание изображения здесь

Ответ №1:

Попробуйте это:

 fputcsv($f, [$nat]);
  

fputcsv ожидает массив, поскольку строка состоит из n столбцов. 1 в вашем случае 🙂