如何使用foreach循环解析表中的嵌套数据结果

时间:2019-04-08 19:01:21

标签: php json api curl

我正在尝试使用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 :(得分:0)

我认为您想使用complex curly syntax

如果要获取众多值之一,也许可以使用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>";
    }
}

请注意将键名titlecreator放在引号之间。

答案 1 :(得分:0)

code here