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

PHP中将指定关联数组转换为目标JSON格式的方法求助

解决方案

我来帮你搞定这个转换问题!你的代码之所以没达到预期,主要有两个原因:

  • 你在array_map的回调里返回的是索引数组,而目标格式需要每个元素是带指定键名的关联数组(对应JSON里的对象)
  • 没有把原数组里的name字段映射成目标需要的name1键名

下面是修正后的代码,完全匹配你想要的JSON格式:

$tableData = ['data' => array_map(function($session) {
    return [
        'id' => (string)$session['id'], // 转成字符串,匹配目标里的"1000"格式
        'name1' => $session['name'],    // 将原name字段重命名为name1
        'name2' => $session['name2'],
        'name3' => $session['name3']
    ];
}, $response)];

return response()->json($tableData);

代码说明:

  1. 关联数组返回:回调函数返回的是带明确键名的关联数组,这样json()方法会把它序列化为JSON对象(而非数组)
  2. 键名调整:把原字段name替换成目标要求的name1
  3. 类型转换:将id从数字转为字符串,完全匹配你给出的目标JSON格式(如果不需要字符串类型,可以去掉(string)强制转换)

举个简单测试例子,假设你的$response有一个元素:

$response = [
    1000 => [
        "id" => 1000,
        "name" => "name",
        "name2" => "name2",
        "name3" => "name3"
    ]
];

运行修正后的代码,输出的JSON会是:

{
    "data": [
        {
            "id": "1000",
            "name1": "name",
            "name2": "name2",
            "name3": "name3"
        }
    ]
}

完全符合你的需求~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:35:14