通过PHP编码JSON
好的,我正试图在php中为json创建一个循环,但我不知道在哪里可以保持json输出所需的格式,或者如何循环。这就是我所拥有的:通过PHP编码JSON,php,json,Php,Json,好的,我正试图在php中为json创建一个循环,但我不知道在哪里可以保持json输出所需的格式,或者如何循环。这就是我所拥有的: $number = array(31,25,160); $json_holder = array(); $counter = count($names); $i = 0; while($i < $counter){ $json_holder = array('user'=> array('results'=> array('tagnumbe
$number = array(31,25,160);
$json_holder = array();
$counter = count($names);
$i = 0;
while($i < $counter){
$json_holder = array('user'=> array('results'=> array('tagnumber' => $number[$i],'status'=>'good'),);
echo json_encode($json_holder);
$i++;
}
因此,与每次生成新的JSON根元素不同,我只想在结果中生成一个新数组,这样它的输出如下:
{
"user": {
"results": [{
"tagnumber": 31,
} {
"tagnumber": 25,
} {
"tagnumber": 160,
}],
"status": "okay"
}
}
我希望我的代码有意义
$number = array(31,25,160);
$payload = array('user' => array('results' => array(), 'status' => 'okay'));
foreach ($number as $num) {
$payload['user']['results'][]['tagnumber'] = $num;
}
echo json_encode($payload);
这里不需要for()
循环
输出
{
"user": {
"results": [
{
"tagnumber": 31
},
{
"tagnumber": 25
},
{
"tagnumber": 160
}
],
"status": "okay"
}
}
如果没有
$i++
,您的while
循环如何不是无限循环?您想要的格式不是很好。如果不同的对象具有不同的状态怎么办?通常,只有一个属性的对象表示设计不好。对不起,我忘了粘贴那部分。我想最好是将状态
附加到每个标记号
组,而不是只为整个用户
添加一个。这不是他/她要求的。@mc10:你完全正确,但我刚刚开始学习JSON及其概念,因为这是我需要学习的东西帮助把这一块拼图拼在一起。@David好极了。这个答案非常清楚。我不知道为什么我如此热衷于使用for循环而不是foreach。我现在可以看到如何更好地组织它,它只是使它更容易。学习如何操作array()
s是需要时间的,一旦掌握了它们,这样的事情就容易多了。
{
"user": {
"results": [
{
"tagnumber": 31
},
{
"tagnumber": 25
},
{
"tagnumber": 160
}
],
"status": "okay"
}
}