php中可以使用内置的 json_encode() 函数将数组直接转换为 json 字符串,而转换 csv 格式则需要借助 fputcsv() 配合内存缓冲区或手动拼接字符串。对于 json,只需调用函数并传入数组即可得到结果;对于 csv,通常需要将数组的每一行写入一个临时文件指针或字符串流中,再获取最终内容。

如何将多维数组转为标准 JSON 字符串
使用 json_encode() 是最直接的方法,它支持关联数组、索引数组以及嵌套结构。默认情况下,该函数会将 PHP 关联数组编码为 JSON 对象(即花括号包裹的键值对),将索引数组编码为 JSON 数组(方括号包裹)。若需确保中文不乱码或保留 ASCII 字符,可添加 JSON_UNESCAPED_UNICODE 等标志位。

$data = [
'name' => 'Alice',
'age' => 30,
'tags' => ['developer', 'php']
];
$jsonString = json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
echo $jsonString;
上述代码输出为一个格式化的 JSON 字符串,包含键名和对应的值,嵌套数组会被正确序列化为 JSON 数组结构。
如何将二维数组数据导出为 CSV 格式字符串
PHP 没有直接返回 CSV 字符串的单一函数,但可以通过 fputcsv() 将数据写入内存中的临时流来实现。创建一个 php://temp 流,逐行写入数组数据,然后使用 stream_get_contents() 读取全部内容。这种方法比手动拼接逗号分隔符更安全,因为它能自动处理包含逗号或换行符的字段。

$data = [
['ID', 'Name', 'Email'],
[1, 'Alice', 'alice@example.com'],
[2, 'Bob', 'bob@example.com']
];
$fp = fopen('php://temp', 'r+');
foreach ($data as $row) {
fputcsv($fp, $row);
}
rewind($fp);
$csvString = stream_get_contents($fp);
fclose($fp);
echo $csvString;
运行后 $csvString 将包含标准的 CSV 文本,字段间用逗号分隔,含特殊字符的字段会自动加双引号包裹。
当数组中包含 null 值时 json_encode 的行为是什么
在调用 json_encode() 时,PHP 的 null 值会被转换为 JSON 中的 null。如果数组键存在但值为 null,生成的 JSON 字符串中该键的值将为 null,而不是被省略或转为空字符串。这一行为是确定的,适用于所有版本的 PHP 5.2+。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











