PHP不会JSON编码多个具有相同名称

时间:2016-12-12 17:38:08

标签: php arrays json

我有下面的结构,我需要变成json_encoded。最后让它解码并获得一个对象。

这将允许我有多个名为message的对象并循环遍历它们并单独处理每条消息。

然而,当编码时,php将只编码keymessage阵列之一 - 最后一个。

$setup = [
    'key' => 'demo-7hn3fh83un3yhvfjvnjgknfhjnvf',

    'message' => [
        'number' => [
            '+39XXXXXXXX',
            '+34XXXXXXXX',
            '+49XXXXXXXX'
        ],

        'text' => 'Sample msg 123...',
    ],

    'message' => [
        'number' => [
            '+50XXXXXXXX',
            '+50XXXXXXXX'
        ],

        'text' => 'Something...',   
    ]
];

有没有办法用同名编码多个数组?

2 个答案:

答案 0 :(得分:3)

你忽略了根本问题:

$foo = [
    'bar' => 1,
    'bar' => 2,
    'bar' => 3,
];
var_export($foo);
array (
  'bar' => 3,
)

答案 1 :(得分:2)

感谢大家的提示。我最终修改了下面的结构...

我之所以选择这样的结构是因为它允许我通过一个请求向多个用户提交多条消息。

$setup = [
    'key' => 'demo-7hn3fh83un3yhvfjvnjgknfhjnvf',

    'message' => [
        [
            'number' => [
                '+39XXXXXXXX',
                '+34XXXXXXXX',
                '+49XXXXXXXX'
            ],

            'text' => 'Sample msg 123...'
        ],
        [ 
            'number' => [
                '+50XXXXXXXX',
                '+50XXXXXXXX'
            ],

            'text' => 'Something...'
        ]
    ]
];