You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用PHP转置CSV文件?求修改现有代码实现目标格式

修改PHP代码生成纵向格式的CSV

你的需求是把原来横向排列的表头和值,改成每行显示一个表头对应一个值的纵向格式。原代码的问题在于把所有表头和值分别合并成两个数组,一次性写入两行,而我们需要逐行写入每组表头和值。

以下是修正后的代码:

<?php
$data2 = [
    ["number of drinks:" => "1"],
    ["number of snacks:" => "2"],
    ["number of cats" => "3"],
    ["numbers of dogs:" => "4"]
];

$fh = fopen('file.csv', 'w');

// 遍历每组数据,逐行写入CSV
foreach ($data2 as $form_section) {
    foreach ($form_section as $heading => $value) {
        // 把表头和值组成一个数组,作为CSV的一行
        fputcsv($fh, [$heading, trim($value)]);
    }
}

fclose($fh);
?>

关键修改说明:

  • 修正了原代码中$data2未闭合的语法错误,以及fputcsv参数多余的逗号问题
  • 移除了原代码中合并headers和values数组的逻辑,改为直接遍历每组数据,将单个表头和值组成数组写入CSV
  • 使用trim($value)去除值里多余的空格(比如原数据中"2 "的空格),保证格式整洁

这样生成的CSV在Excel/Google Docs中打开后,会呈现每行两列的纵向格式,符合你的需求。

内容的提问来源于stack exchange,提问作者YaBoyCallum

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 21:55:13