来自JSON的PHP表,没有数组中的名称

时间:2015-01-19 13:00:53

标签: php json

我遇到了api Yandex的问题。 我必须从api获取数据并使用php表格:

Source    Users   New    Pages   Bounce  Goal1  Goal2
organic   s1v1    s1v2   s1v3    s1v4    s1v5   s1v6
referral  s2v1    s2v2   s2v3    s2v4    s2v5   s2v6
(none)    s3v1    s3v2   s3v3    s3v4    s3v5   s3v6


在json_decode之后我有:

{"data":[
{"dimensions":[{"name":"organic"}],"metrics":[s1v1,s1v2,s1v3,s1v4,s1v5,s1v6]},
{"dimensions":[{"name":"referral"}],"metrics":[s2v1,s2v2,s2v3,s2v4,s2v5,s2v6]},
{"dimensions":[{"name":"(none)"}],"metrics":[s3v1,s3v2,s3v3,s3v4,s3v5,s3v6]},
]}

但我无法正确地将其解析为表格。到目前为止,我只为第一列Source编写了代码,然后卡住了:

<?php 
$metrika_o = json_decode($metrika);
echo "<table>
           <tr>
                <td><strong>Source</strong></td>
                <td><strong>Users</strong></td>
                <td><strong>New</strong></td>
                <td><strong>Pages</strong></td>
                <td><strong>Bounce</strong></td>
                <td><strong>Goal1</strong></td>
                <td><strong>Goal2</strong></td>
            </tr>";
foreach($metrika_o->data as $data)
foreach($data->dimensions as $source)
:
?>
    <tr>
    <td><?php echo $source->name?></td>
    </tr>
<?php endforeach;
      echo "</table>";
?>

源编号不断变化,列的集合是固定的。 请帮我解决这个任务

1 个答案:

答案 0 :(得分:0)

你的方式正确:

<?php foreach($metrika_o->data as $data): ?>
<tr>
    <td><?php echo $data->dimensions[0]->name; ?></td>
    <?php foreach(explode(',',$data->metrics) as $col):
    <td><?php echo $col; ?></td>
    <?php endforeach; ?>
</tr>
<?php endforeach; ?>