Показать несколько записей из JSON с PHP - PullRequest
0 голосов
/ 07 декабря 2018

Мне нужна помощь с моим кодом, я Noob с JSON и PHP, но я учусь

[
  {
 "eventId": 213,
"balls": [
  {
    "ball": 26,
    "id": 1
  },
  {
    "ball": 31,
    "id": 2
  }
]
  },
  {
"eventId": 212,
"balls": [
  {
    "ball": 22,
    "id": 1
      },
  {
    "ball": 33,
    "id": 2
  }
]
}
]

У меня есть этот JSON и эта часть кода php:

<table>
<?php
$url = 'external-link'; 

$data = file_get_contents($url);
$json_post = json_decode($data,true);
?>
    <table>
        <tbody>
        <?php foreach ($json_post as $event) : ?>
        <tr>
            <td><?php echo $event['eventId']; ?></td>
            <td><?php foreach ($json_post as $ball) : ?> <?php echo $ball['balls'][0]['ball']; ?> <?php endforeach; ?></td>
        </tr>
        <?php endforeach; ?>
    </tbody>
</table>

Я неправильно отображаю этот код, но не так, как хочу:

 213 | 26 31 

 212 | 22 33

Любая помощь будет признательна, спасибо

1 Ответ

0 голосов
/ 07 декабря 2018

Вам нужно сделать свой внутренний цикл foreach над текущим событием ...

<td><?php foreach ($event['balls'] as $ball) : ?> <?php echo $ball['ball']; ?> <?php endforeach; ?></td>

Если не все элементы имеют эти данные, вы можете использовать следующее ...

    <td><?php if(isset($event['balls'])):
        foreach ($event['balls'] as $ball) : 
               echo $ball['ball']; 
        endforeach; 
        endif;?></td>

Полный код:

$url = "url";
$data = file_get_contents($url);
$json_post = json_decode($data,true);
?>
    <table>
        <tbody>
        <?php foreach ($json_post as $event) : ?>
        <tr>
            <td><?php echo $event['eventId']; ?></td>
            <td><?php if(isset($event['balls'])):
                foreach ($event['balls'] as $ball) : 
                       echo $ball['ball'].' '; 
                endforeach; 
                endif;?></td>
        </tr>
        <?php endforeach; ?>
    </tbody>
</table>
...