二维数组转成json数组的问题

这个二维数组为什么转成json数组后没有那个方括号呢?
'{"user":{"sex":"nan","name":"lin","uk":"chang"}}'
为什么得到的却是上面的这个结果呢? 结果应该是下面这样才对啊 是我哪里写的不对吗?
'{"user":[{"sex":"nan","name":"lin","uk":"chang"}]}'

$arr=["user"=>["sex"=>"nan","name"=>'lin',"uk"=>"chang"]];
$json=json_encode($arr);
var_dump($json);
阅读 10.1k
3 个回答
$arr=["user"=>[["sex"=>"nan","name"=>'lin',"uk"=>"chang"]]];

这才是你想要的

如果PHP数组是一个索引数组,那么json_encode()返回一个数组形式的Json,就是你要的那种[]形式.如果PHP数组是关联数组或混合数组,那么json_encode()就会返回一个对象形式的Json,也就是{}.

为什么?

是这样的哦楼主,您在使用json_encoder()时是将数组转换成jsonjson是一种通用的格式,比如我们php的数组javascript肯定不认识呀,所以要转成json这种通用格式,在json中您的二维数组就是那个意思啦。

怎么做?

<?php
$arr=["user"=>[["sex"=>"nan","name"=>'lin',"uk"=>"chang"]]];
$json=json_encode($arr);
var_dump($json);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏