php中array转为json时的对象和数组的对应关系
php中数组转化为json时,总会感觉层级不是那么清晰,但其实只是json中自动处理了,
在php
中数组是一定有键值对来进行表示的,这种关系在php
中是一种绝对的对应关系,但在json
中却不总是,
{ } 大括号,表示定义一个对象,大部分情况下要有成对的属性和值,或是函数;[ ]中括号,表示一个数组,也可以理解为一个数组对象;
1、php一维数组
//php一维数组 字母数字下标混合
array(3) {
["a"] => string(1) "a"
[0] => string(1) "b"
[1] => string(1) "c"
}
//对应的json格式:
{
"0": "b",
"1": "c",
"a": "a"
}
//php数组中如果既有字母下标,又有数字下标时,转为json时也是一一对应的关系,此时,被转化为了一个json对象;
·
·
·
//纯文本下标和混合下标情况一样
array(3) {
["name"] => string(5) "hover"
["age"] => int(29)
["sex"] => int(1)
}
{"name":"hover","age":29,"sex":1}
//php一维数组 纯数字下标混合
array(2) {
[0] => string(1) "b"
[1] => string(1) "c"
}
//对应的json格式
[
"b",
"c"
]
//在纯数字下标,且是自然顺序排序的时候,即从0开始没有间隔的依次排序的,则json会自动省略数字下标,此时,被转化为了一个json数组;
2、二维数组
//php二维数组 纯数字下标混合
array(2) {
[0] => array(4) {
["id"] => string(1) "9"
["goods_id"] => string(2) "14"
["user_id"] => string(3) "748"
["goods_num"] => string(1) "3"
}
[1] => array(4) {
["id"] => string(2) "10"
["goods_id"] => string(2) "17"
["user_id"] => string(3) "748"
["goods_num"] => string(1) "2"
}
}
//对应json格式
[
{
"id": "9",
"goods_id": "14",
"user_id": "748",
"goods_num": "3"
},
{
"id": "10",
"goods_id": "17",
"user_id": "748",
"goods_num": "2"
}
]
//php二维数组 字母数字下标混合
array(3) {
[0] => array(4) {
["id"] => string(1) "9"
["goods_id"] => string(2) "14"
["user_id"] => string(3) "748"
["goods_num"] => string(1) "3"
}
[1] => array(4) {
["id"] => string(2) "10"
["goods_id"] => string(2) "17"
["user_id"] => string(3) "748"
["goods_num"] => string(1) "2"
}
["time"] => array(2) {
[0] => string(4) "test"
[1] => string(1) "2"
}
}
//对应的json格式
{
"0": {
"id": "9",
"goods_id": "14",
"user_id": "748",
"goods_num": "3"
},
"1": {
"id": "10",
"goods_id": "17",
"user_id": "748",
"goods_num": "2"
},
"time": [
"test",
"2"
]
}
总结:以上可以发现,只要是php中的自然连续下标,转为json时会被转为json数组,不然则会被转为json对象,所以在与其它平台做数据交互的时候可以稍微注意一下,就可以很好的解决问题。
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇:没有了
- 下一篇: PHP使用CURL发送GET请求时传递参数的问题