Как проанализировать результаты вложенных данных в таблице с помощью цикла foreach - PullRequest
0 голосов
/ 08 апреля 2019

Я пытаюсь использовать curl для анализа и отображения результатов в таблице из DPLA API. Я подумал, что для этого использовал бы цикл foreach, но у меня возникла проблема с получением вложенных данных. Чего мне не хватает?

<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.dp.la/v2/items?q=weasels&api_key=mypersonalkey");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$json_response = curl_exec($ch);
$myArray = json_decode($json_response, true);
curl_close($ch);
?>
    <h2>Part 1</h2> 
        <table>
            <tr>
                <th>title</th>
                <th>creator</th>
            </tr>
<?php
        foreach ($myArray as $post){
            echo "<tr>";
            echo "<td>{$post[title]}</td>";
            echo "<td>$post[creator]</td>";
            echo "</tr>";
            echo "<pre>";
         }
?>

Теперь я довольно новичок в php и взял урок, чтобы узнать больше. Я изучал пару месяцев в Интернете, но я мог бы использовать дополнительную помощь. Я просмотрел сайт php doc и сайт api.dp.la, но все еще чувствую себя немного потерянным.

Я хотел бы видеть результаты для 1 из многих результатов. Верните 1 титул и создателя.

Ответы [ 2 ]

0 голосов
/ 09 апреля 2019
foreach ($myArray['docs'] as $post) {
            echo "<tr>";
            echo "<td>";
            echo($post['sourceResource']['creator'][0]);
            echo "<td>";
            echo($post['sourceResource']['description'][0]);
            echo "</tr>";
            break;
0 голосов
/ 08 апреля 2019

Я думаю, вы хотите использовать сложный фигурный синтаксис .

Если вы хотите получить одно из множества значений, возможно, вы можете проверить одно из значений из записи, используя if. Если оператор if может соответствовать более чем одному значению, и вам нужно только первое найденное вами значение, вы можете использовать break, чтобы выйти из цикла.

Вы можете обновить до, например:

foreach ($myArray as $post){
    if ($post["title"] === "my title") {
        echo "<tr>";
        echo "<td>{$post["title"]}</td>";
        echo "<td>{$post["creator"]}</td>";
        echo "</tr>";
        echo "<pre>";
    }
}

Заметьте, что ключевые слова title и creator заключаются в кавычки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...