这是我从数据库获取的JSON响应。我想打印这些数据。目前,我的表中只有2个条目。所以JSON的长度应为2.随着数据的增加,计数必须增加。为了显示输出,我使用for循环。我使用count()
来限制循环的迭代只通过JSON。
我的JSON:
{
"log": [
{
"action": "qq",
"id": "1",
"Time": "2014-05-19T15:40:06+05:30",
"user": {
"firstName": "dani",
"type": {
"zzs": "1",
"typename": "lolo",
"id": "1",
"zzt": "1",
"zzu": "1",
"zzv": "1",
"zzw": "1",
"zzx": "1"
},
"id": "1",
"lastName": "fed",
"password": "lmfao",
"userName": "fyi"
},
"userIpAddress": "101.15.23.45"
},
{
"action": "vv",
"id": "2",
"Time": "2014-05-20T10:16:33+05:30",
"user": {
"firstName": "dani",
"type": {
"zzs": "1",
"typename": "lolo",
"id": "1",
"zzt": "1",
"zzu": "1",
"zzv": "1",
"zzw": "1",
"zzx": "1"
},
"id": "1",
"lastName": "web",
"password": "rolf",
"userName": "asap"
},
"userIpAddress": "192.168.0.181"
}
]
}
我的PHP
$out = json_decode($json_data, true);
$x= count($out);
echo $x;
我得到的值是1而不是2.正如你所看到的,我有一个关联数组。我试图打印这些数据。
for($i=0; $i<$x; $i++)
{
echo $out['action'];
echo $out['user'][$i]['firstName'] ;
echo $out['user']['type'][$i]['typename'] ;
}
我没有得到输出。 HELP ???
答案 0 :(得分:1)
我认为它可能只是在计算“Log”......从技术上讲,响应是二维的:
data[0] = log
data[0][0] = log.firstRecord
data[0][1] = log.secondRecord
尝试迭代第二维
答案 1 :(得分:0)
您的数组中的log
项内有2个元素。
试试这个:
$x= count($out['log']);
这将计算2
对于你的循环,你应该尝试这样:
$out = json_decode($json_data, true);
$x= count($out['log']);
$out = $out['log'];
for($i=0; $i<$x; $i++)
{
echo $out[$i]['action'];
echo $out[$i]['user']['firstName'] ;
echo $out[$i]['user']['type']['typename'] ;
}