[英]Issue formatting JSON array in PHP
基本上我有以下条件来组装一个数组 - 问题是它当前创建的数组有太多对象。
$a = 1
$b = 2
if ($a == 1)){
$results[]['id'] = 5;
$results[]['reasons'] = "A issue";
}
if ($b == 1){
$results[]['id'] = 6;
$results[]['reasons'] = "B issue";
}
if ($b == 2){
$results[]['id'] = 6;
$results[]['reasons'] = "B issue";
}
)
$json = json_encode(array($results));
echo $json;
当前结果:
[
{
"id": 5
},
{
"reasons": "A issue"
},
{
"id": 6
},
{
"reasons": "B issue"
}
]
我需要的:
[
{
"id": 5,
"reasons": "A issue"
},
{
"id": 6,
"reasons": "B issue"
}
]
如何使用条件正确构建此 JSON 数组?
您使用$results[][$value]
这意味着将某些内容推送到数组。
您所要做的就是将$id
和$reason
放入一个数组中,然后将该数组推送到您的结果中,而不是单独的每个项目:
$results[] = [
'id' => 5,
'message' => 'A issue'
];
您必须将一个 object 阵列添加到您的阵列中才能做到这一点。 您实际上是在添加字符串和数字。
改变:
$results[]['id'] = 5;
$results[]['reasons'] = "A issue";
至:
$results[] = [
'id' => 5,
'reasons' => "A issue"
];
您可以像这样编写此代码:
$a = 1;
$b = 2;
if ($a == 1){
$results[] = ['id'=> 5, 'reasons' => 'A issue'];
}
if ($b == 1){
$results[] =['id'=> 6, 'reasons' => 'B issue'];
}
if ($b == 2){
$results[] =['id'=> 6, 'reasons' => 'B issue'];
}
$json = json_encode($results);
echo $json;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.