我想打印出来自以下输出的工作人员姓名
{
"result":{
"addr":"54GaFN8vWMgJ",
"workers":[
[
"worker1", <-- print out dynamic worker names
{
"a":"0.67"
},
14,
1,
"200000",
0,
22
],
[
"worker2", <-- print out dynamic worker names
{
"a":"1972.88"
},
9,
1,
"2048",
0,
24
]
],
"algo":-1
},
"method":"stats.provider.workers"
}
到目前为止,我已尝试使用以下内容:
$worker_names = json_decode($get_data, true);
$i = 0;
foreach ($worker_names['result']['workers'] as $key => $value) {
print "<td>".$value[$i++]."</td>";
}
这种方式可以显示第一个工作者名称,其中包含数组中的其余内容。
是否有更好的方法可能只打印数组中的第一个字符串,即工作者姓名?
输出应显示:
worker1
worker2
答案 0 :(得分:2)
如果您隔离了JSON对象的workers
元素,那么您将拥有一个可以迭代的数组。以下是打印工作人员姓名的方法:
$data = json_decode($get_data);
$workers = $data->result->workers;
foreach ($workers AS $worker) {
print($worker[0].'<br>');
}
输出:
worker1
worker2
答案 1 :(得分:1)
不要在foreach循环内增加$ i,否则将索引值设置为0
你试试这个:
foreach ($worker_names['result']['workers'] as $key => $value) {
print "<td>".$value[0]."</td>";
}