Мне нужно преобразовать массив с несколькими результатами в файл CSV, но я изо всех сил пытаюсь получить действительный вывод. После некоторой отладки я понял, что не генерирую допустимый список массивов для fputcsv для итерации .
Прежде всего, вот наглядный пример var_dump моего массива:
object(stdClass)#83 (3) {
["Username"]=>
string(8) "username"
["FullName"]=>
bool(false)
["ContactPhoneNumber"]=>
bool(false)
object(stdClass)#84 (3) {
["Username"]=>
string(8) "username2"
["FullName"]=>
bool(false)
["ContactPhoneNumber"]=>
bool(false)
object(stdClass)#85 (3) {
["Username"]=>
string(8) "username3"
["FullName"]=>
bool(false)
["ContactPhoneNumber"]=>
bool(false)
И это код, который я пробовал после некоторого исследования того, как преобразовать массив в CSV:
$file = fopen($CsvFile, 'w');
fputcsv($file, array_keys($HeaderFields)); // Headers
$data = array($DataRecord);
foreach ($data as $row) {
$row = [];
array_walk_recursive($row, function ($item) use (&$row) {
$row[] = $item;
});
fputcsv($file, $row);
}
fclose($file);
Я также попытался использовать стандартный пример из fputcsv:
$file = fopen($CsvFile, 'w');
$data = array($DataRecord)
foreach ($data as $row) {
fputcsv($file, $row);
}
fclose($file);
Очевидно, я делаю что-то очень неправильно и не могу создать правильный формат для вставки нескольких строк массива в CSV-файл.
Если я заменю свой массив $data на это:
$data = array(array('Data 11', 'Data 12', 'Data 13', 'Data 14', 'Data 15'));
Тогда fputcsv работает как положено.
Итак, что мне нужно, так это преобразовать мой массив в этот формат, чтобы fputcsv мог перебирать его и сохранять каждую строку.
Как я мог этого добиться?
Спасибо
fputcsv
. Взгляните на stackoverflow.com/questions/52933052/ - person cOle2   schedule 12.02.2021