如何在json解码数组中打印第一个动态字符串

时间:2018-02-21 16:29:35

标签: php arrays json

我想打印出来自以下输出的工作人员姓名

{
   "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

2 个答案:

答案 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>";
    }