создать и скачать CSV из массива с моим собственным заголовком в php

1

У меня очень простой массив, который я хочу экспортировать в файл CSV, который я сделал с помощью этого метода. Как создать и загрузить файл csv из php-скрипта?

Но я хочу, чтобы мой собственный заголовок находился в верхней части файла, который также является массивом, созданным мной и похожим на this-

           $header = array(
                    'order_id'                => 'order_id',
                    'firstname'               => 'firstname',
                    'lastname'                => 'lastname',
                    'email'                   => 'email',
                    'telephone'               => 'telephone',
                    'fax'                     => 'fax',
                    'product_id'              => 'product_id',
                    'name'                    => 'name',
                    'model'                   => 'model',
                    'quantity'                => 'quantity',
                    'price'                   => 'price',
                    'currency_value'          => 'total',
                    'order_status'            => 'order_status'
                    );

мой исходный массив экспорта -

 Array
 (
[0] => Array
    (
        [order_id] => 195
        [firstname] => satyendra
        [lastname] => singh
        [email] => [email protected]
        [telephone] => 9818077908
        [fax] => 
        [product_id] => 7086
        [name] => Bachini  Casual Shoes  1511-Navy Blue
        [model] => 1511-Navy Blue
        [quantity] => 1
        [price] => 499.00
        [currency_value] => 499.00
        [order_status] => 
    )

   [1] => Array
    (
        [order_id] => 196
        [firstname] => satyendra
        [lastname] => singh
        [email] => [email protected]
        [telephone] => 9818077908
        [fax] => 
        [product_id] => 7086
        [name] => Bachini  Casual Shoes  1511-Navy Blue
        [model] => 1511-Navy Blue
        [quantity] => 1
        [price] => 499.00
        [currency_value] => 499.00
        [order_status] => 
    )

 )

экспорт работает нормально. Я просто хочу добавить этот заголовок в начало моего исходного массива, чтобы при экспорте я получил первую строку массива в качестве заголовка в моем файле csv. может ли какой-нибудь трюк добиться определенного результата

  • 0
    Не могли бы вы опубликовать свой код, это может помочь нам предоставить вам решение.
Теги:
csv
arrays
export

1 ответ

1
Лучший ответ

Вы можете попробовать ниже кода.

Предполагая, что вы используете упомянутый вами код - Как создать и загрузить файл csv из php-скрипта? , пожалуйста, передайте свой массив $ header как четвертый параметр для функции array_to_csv_download.

Затем, как только перед массивом экспорта, массив заголовков записывается в файл csv.

function array_to_csv_download($array, $filename = "export.csv", $delimiter=";",$header) {
    // open raw memory as file so no temp files needed, you might run out of memory though
    $f = fopen('php://memory', 'w');
    fputcsv($f, $header, $delimiter); // write $header array first to top of csv file
    // loop over the input array
    foreach ($array as $line) { 
        // generate csv lines from the inner arrays
        fputcsv($f, $line, $delimiter); 
    }
    // reset the file pointer to the start of the file
    fseek($f, 0);
    // tell the browser it going to be a csv file
    header('Content-Type: application/csv');
    // tell the browser we want to save it instead of displaying it
    header('Content-Disposition: attachment; filename="'.$filename.'";');
    // make php send the generated csv lines to the browser
    fpassthru($f);
}
  • 1
    Хорошее решение, работа для меня. Спасибо... ;)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню