У меня есть массив под названием: $messages
с этими данными.(Генерируется динамически).
Как создать файл CSV, содержащий 3 столбца (txt, время и имя) для каждого txt_id со значениями?
array(3) {
[0]=>
array(5) {
["txt"]=>
string(3) "Hey"
["txt_id"]=>
string(1) "5"
["name"]=>
string(8) "John Doe"
["id_user"]=>
string(1) "5"
["time"]=>
string(19) "2017-12-15 08:28:47"
}
[1]=>
array(5) {
["txt"]=>
string(8) "Hey John"
["txt_id"]=>
string(1) "5"
["name"]=>
string(13) "Gilles Ragout"
["id_user"]=>
string(1) "58"
["time"]=>
string(19) "2017-12-15 08:37:21"
}
[2]=>
array(5) {
["txt"]=>
string(6) "What ?"
["txt_id"]=>
string(2) "12"
["name"]=>
string(11) "Noémie Nail"
["id_user"]=>
string(1) "56"
["time"]=>
string(19) "2017-05-10 05:12:36"
}
Таким образом, результат должен бытьMessages1.csv и Messages2.csv, потому что у нас есть 2 разные txt_id.
И вывод файла csv должен быть для Messages1.csv:
txt | time | name
Hey 2017-12-15 08:28:47 John Doe
Hey John 2017-12-15 08:37:21 Gilles Ragout
И для Messages2.csv:
txt | time | name
What ? 2017-05-10 05:12:36 Noemie Nail
Я пытаюсь с этим кодом.
$file = fopen('php://temp', 'w');
if (false === $file) {
die('Failed to create temporary file');
}
foreach ($getUserConv as $conv) {
fputcsv($file, array_keys($conv));
fputcsv($file, $conv);
}
rewind($file);
$zip->addFromString(__('Conversations').'.csv', stream_get_contents($file));
fclose($file);
И результатом этого кода является большой CSV-файл, который содержит весь диалог, но имя столбца отсутствует, а заголовки повторяются.
Например, у меня есть Разговоры, которые генерируются, и вывод:
txt | time
Hi 2017-12-18 01:01:10
txt | time
Yo 2017-12-18 02:10:08