问题描述
我在使用 json_encode 时遇到了一些问题, 我需要输出是这样的:
{
"Advisories": [
{
"Advisory": {
"Severe": "false","description": "Lorem ipsum dolor sit amet","title": "Advise:",}
},{
"Advisory": {
"Severe": "true",}
}
]
}
这就是我的 var $arrayItems 的样子:
Array (
[0] => Array (
[Severe] => false
[description] => Lorem ipsum dolor sit amet.
[title] => Advise
)
[1] => Array (
[Severe] => false
[description] => Lorem ipsum dolor sit amet.
[title] => Advise
)
[2] => Array (
[Severe] => true
[description] => Lorem ipsum dolor sit amet
[title] => Advise
)
)
但是当我像这样使用 json_encode 函数时:print json_encode(['Advisories' => array('Advisory'=>$arrayItems)]);
输出是这样的:
{
"Advisories": {
"Advisory": [
{
"Severe": "false","title": "Advise",},{
"Severe": "false",{
"Severe": "true","title": "Advises ",}
]
}
}
我不知道我还能做些什么来改变输出,
你能帮我吗? 问候
解决方法
要实现该格式,您必须稍微修改 $arrayItems。
以下代码段将修改每个子数组以包含“Advisory”键,该键将是指向 json 对象(保存原始子数组数据)的属性。
$result = ['Advisories' => array_map(
function ($subarray) {
return ['Advisory' => $subarray];
},$arrayItems
)];
return json_encode($result);
结果:
{
"Advisories": [
{
"Advisory": {
"Severe": false,"description": "Lorem ipsum dolor sit amet.","title": "Advise"
}
},{
"Advisory": {
"Severe": false,{
"Advisory": {
"Severe": true,"description": "Lorem ipsum dolor sit amet","title": "Advise"
}
}
]
}