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

如何在PHP json_encode中实现JS JSON.stringify的replacer与space效果

解决方法

PHP的json_encode函数参数规则和JS的JSON.stringify不同,你之前的写法传参错误无法触发格式化效果,按下面的方法调整即可:

1. 基础格式化输出

JSON_PRETTY_PRINT是PHP 5.4.0及以上版本内置的选项常量,传入后即可生成带换行缩进的易读JSON,默认缩进为4空格:

echo json_encode($array, JSON_PRETTY_PRINT);

2. 调整缩进为2空格(和JS示例效果一致)

如果你需要和JS示例一样的2空格缩进,可以对输出结果做一次简单的正则替换:

$json = json_encode($array, JSON_PRETTY_PRINT);
// 将默认4空格缩进替换为2空格
$jsonWith2Indent = preg_replace('/^    /m', '  ', $json);
echo $jsonWith2Indent;

3. 实现类似JS的replacer字段过滤效果

PHP的json_encode没有内置replacer参数,需要你在编码前自行处理原数组,实现字段过滤逻辑:

// 示例:仅保留每个元素的test字段
$processed = array_map(function($item) {
    return [
        'test' => $item['test']
    ];
}, $array);

// 输出格式化后的结果
echo json_encode($processed, JSON_PRETTY_PRINT);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 01:09:03