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

如何在PHP中将JSON数组值转换为带id键的对象数组?

PHP实现JSON数组格式转换

你可以按以下步骤实现需求:

  1. 准备并解码原始JSON数据
    先确保你已经获取到目标JSON数据(比如通过API请求、本地文件读取等方式),再用json_decode将其转为PHP关联数组:

    // 示例原始JSON数据(实际场景替换为你的数据获取逻辑)
    $jsonData = '{"result": [548915, 505031, 28967]}';
    // 解码为关联数组,第二个参数true确保返回数组而非对象
    $data = json_decode($jsonData, true);
    
  2. 转换ID数组的结构
    核心是把原数组里的每个数字ID,包装成带id键的关联数组。用array_map可以快速实现:

    // 遍历result数组,转换每个元素的格式
    $data['result'] = array_map(function($id) {
        return ['id' => $id];
    }, $data['result']);
    

    如果你更习惯用foreach循环,也可以这么写:

    $newResult = [];
    foreach ($data['result'] as $id) {
        $newResult[] = ['id' => $id];
    }
    $data['result'] = $newResult;
    
  3. 重新编码为格式化的JSON
    最后用json_encode把处理后的数组转回JSON,加上JSON_PRETTY_PRINT参数让输出和你想要的格式一致:

    $finalJson = json_encode($data, JSON_PRETTY_PRINT);
    // 输出或保存结果
    echo $finalJson;
    

完整可运行示例代码

<?php
// 替换为你的JSON数据获取逻辑,比如从API接口读取、本地文件读取等
$jsonData = '{"result": [548915, 505031, 28967]}';

// 解码JSON并检查错误
$data = json_decode($jsonData, true);
if (json_last_error() !== JSON_ERROR_NONE) {
    die('JSON解码失败: ' . json_last_error_msg());
}

// 检查result数组是否存在并有效
if (!isset($data['result']) || !is_array($data['result'])) {
    die('原始数据格式不符合要求');
}

// 转换ID格式
$data['result'] = array_map(function($id) {
    return ['id' => $id];
}, $data['result']);

// 生成格式化后的JSON
$finalJson = json_encode($data, JSON_PRETTY_PRINT);
echo $finalJson;
?>

运行这段代码后,输出的JSON就是你想要的格式:

{
    "result": [
        {
            "id": 548915
        },
        {
            "id": 505031
        },
        {
            "id": 28967
        }
    ]
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 16:38:41