php输出json,需要嵌套数组和对象问题

            $tmp = [];
            $tmp['id'] = 'aaa';
            $tmp['name'] = 'bbb';
            $tmp['vvvv'] = [
                'www'=>1,
                'ffff'=>2
            ];
            
            echo (json_encode($tmp));

输出是

{
"id": "aaa",
"name": "bbb",
"vvvv": {
    "www": 1,
    "ffff": 2
}
}

我想问一下如何将输出改为

{
"id": "aaa",
"name": "bbb",
"vvvv": [
    {"www": 1},
    {"ffff": 2}
]
}

我测试过这样是可以的,就是不太好用:

    $tmp['vvvv'] = [
                0=>(object)['www'=>1],
                1=>(object)['fff'=>2]
            ];
阅读 5.6k
3 个回答

将$tmp['vvvv']里的元素换成数组就行了,不需要转化为object,如下

            $tmp = [];
            $tmp['id'] = 'aaa';
            $tmp['name'] = 'bbb';
            $tmp['vvvv'] = [
                ['www'=>1],
                ['ffff'=>2]
            ];

本来就是这样,php统一都是map

新手上路,请多包涵

我按照你这样的方式去写,报错了,就是第一行定义数组的时候就报中括号错误,这是为什么呢

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏