1 回答

TA貢獻1942條經驗 獲得超3個贊
您需要展平數組(意味著將每個值放入第一個維度)。
應用于您的示例,您需要這樣的東西:
$iterator = new RecursiveIteratorIterator(new RecursiveArrayIterator($data));
$csvArray = [];
foreach($iterator as $value) {
? ? $csvArray[] = $value;
}
fputcsv($fp, $csvArray);
工作示例。
編輯 - 更具可讀性的數組扁平化器
function getFlatArray($data, $keyPrefix = '') {
? ? $result = [];
? ??
? ? foreach ($data as $key => $value) {
? ? ? ? $newKey = $keyPrefix . $key;
? ? ? ??
? ? ? ? if (!is_array($value)) {
? ? ? ? ? ? $result[$newKey] = $value;
? ? ? ? } else {
? ? ? ? ? ? $result += getFlatArray($value, $newKey . '-');
? ? ? ? }
? ? }
? ??
? ? return $result;
}
$csvArray = getFlatArray(array_pop($data));
fputcsv($fp, array_keys($csvArray)); // add keys to first line
fputcsv($fp, $csvArray);
工作示例。
- 1 回答
- 0 關注
- 97 瀏覽
添加回答
舉報