虽然json_decode我想在数组PHP中重复键值

时间:2016-09-15 10:19:24

标签: arrays json

我希望将下面的JSON作为具有重复键值的数组,即:

"2016-09-16":{"available":"1","bind":0,"info":"","notes":"","price":"","promo":"","status":"booked"}

两次。我怎么能这样做?

{
    "2016-06-28": {
        "available": "1",
        "bind": 0,
        "info": "",
        "notes": "",
        "price": "",
        "promo": "",
        "status": "booked"
    },
    "2016-06-29": {
        "available": "1",
        "bind": 0,
        "info": "",
        "notes": "",
        "price": "",
        "promo": "",
        "status": "booked"
    },
    "2016-06-30": {
        "available": "1",
        "bind": 0,
        "info": "",
        "notes": "",
        "price": "",
        "promo": "",
        "status": "booked"
    },
    "2016-07-04": {
        "available": "1",
        "bind": 0,
        "info": "",
        "notes": "",
        "price": "",
        "promo": "",
        "status": "booked"
    },
    "2016-07-05": {
        "available": "1",
        "bind": 0,
        "info": "",
        "notes": "",
        "price": "",
        "promo": "",
        "status": "booked"
    },
    "2016-07-06": {
        "available": "1",
        "bind": 0,
        "info": "",
        "notes": "",
        "price": "",
        "promo": "",
        "status": "booked"
    },
    "2016-07-07": {
        "available": "1",
        "bind": 0,
        "info": "",
        "notes": "",
        "price": "",
        "promo": "",
        "status": "booked"
    },
    "2016-09-16": {
        "available": "1",
        "bind": 0,
        "info": "",
        "notes": "",
        "price": "",
        "promo": "",
        "status": "booked"
    },
    "2016-09-15": {
        "available": "1",
        "bind": 0,
        "info": "",
        "notes": "",
        "price": "",
        "promo": "",
        "status": "booked"
    },
    "2016-09-14": {
        "available": "1",
        "bind": 0,
        "info": "",
        "notes": "",
        "price": "",
        "promo": "",
        "status": "booked"
    },
    "2016-09-13": {
        "available": "1",
        "bind": 0,
        "info": "",
        "notes": "",
        "price": "",
        "promo": "",
        "status": "booked"
    },
    "2016-09-16": {
        "available": "1",
        "bind": 0,
        "info": "",
        "notes": "",
        "price": "",
        "promo": "",
        "status": "booked"
    },
    "2016-09-17": {
        "available": "1",
        "bind": 0,
        "info": "",
        "notes": "",
        "price": "",
        "promo": "",
        "status": "booked"
    }
}

1 个答案:

答案 0 :(得分:0)

在同一个对象中使用重复键的JSON在JSON解析器中是不可靠的(有些会阻塞,有些会只给你最后一次出现的值)而在任何情况下都不是有用的。使用对象数组作为这些日期键的值,而不是单个对象:

{
    "2016-06-29": [{
        "available": "1",
        "bind": 0,
        "info": "",
        "notes": "",
        "price": "",
        "promo": "",
        "status": "booked"
    }],
    "2016-09-16": [{
        "available": "1",
        "bind": 0,
        "info": "",
        "notes": "",
        "price": "",
        "promo": "",
        "status": "booked"
    }, {
        "available": "1",
        "bind": 0,
        "info": "",
        "notes": "",
        "price": "",
        "promo": "",
        "status": "booked"
    }],
    "2016-09-15": [{
        "available": "1",
        "bind": 0,
        "info": "",
        "notes": "",
        "price": "",
        "promo": "",
        "status": "booked"
    }]
}

(为清楚起见,数据已缩短。)

在上文中,请注意2016-06-292016-09-15如何只包含一个条目的数组,但2016-09-16有一个包含两个条目的数组。