Как установить ключи в качестве первого элемента массива

Я экспортирую php-массивы в Excel, используя XLSXWriter,

$data = array(
array('id' => 0, 'name' => 'John Doe'),
array('id' => 1, 'name' => 'Jane Doe'),
array('id' => 2, 'name' => 'Will Smith'),
);

$writer = new XLSXWriter();
$writer->writeSheet($data);
$writer->writeToFile('path/and/filename.xlsx');

Он выводит в Excel, как это:

0   |   John Doe
1   |   Jane Doe
2   |   Will Smith

Это нормально, но мне также нужны ключи массива в первой строке:

id  |   name
2   |   Will Smith
0   |   John Doe
1   |   Jane Doe
2   |   Will Smith

Итак, я сделал это:

    $headings = array_keys($data[0]);
array_unshift($data,$headings);

Это работает, но есть ли лучший способ?

1

Решение

Как насчет writeSheetRow

    $data = array(
array('id' => 0, 'name' => 'John Doe'),
array('id' => 1, 'name' => 'Jane Doe'),
array('id' => 2, 'name' => 'Will Smith'),
);

$writer = new XLSXWriter();
$writer->writeSheetRow('Sheet1',['id','name']);
$writer->writeSheetRow('Sheet1',end($data));
$writer->writeSheet($data);
$writer->writeToFile('path/and/filename.xlsx');

Выход

id | name
2 |  Will Smith
0 |  John Doe
1 |  Jane Doe
2 |  Will Smith

Сначала добавьте последнюю строку, а затем добавьте весь массив в файл.
Надеюсь, это работает.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]