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 关注
- 81 浏览
添加回答
举报