PHP如何使用foreach遍历API返回的对象数组并输出每条内容
实现方案
从var_dump($users)的输出可以确认数据结构:
$users是顺序索引数组,共10条数据- 数组内每个元素是
stdClass对象,包含2个公开属性:fact:字符串,存储猫咪趣味事实的具体文本length:整数,存储对应fact文本的字符长度
直接通过foreach遍历数组,用对象属性访问符->读取对应内容输出即可,完整可运行代码如下:
$api_url = 'https://catfact.ninja/facts'; $json_data = file_get_contents($api_url); $response_data = json_decode($json_data); $users = $response_data->data; // 遍历逐条输出 foreach ($users as $factItem) { // 仅输出事实内容,用<br>换行适配web页面显示,命令行场景可以换成PHP_EOL echo $factItem->fact . '<br>'; // 如果需要同时展示文本长度,替换为下面的写法即可 // echo "趣味事实:" . $factItem->fact . "(字符长度:" . $factItem->length . ")<br>"; }
补充说明:如果你更习惯用数组方式读取数据,可以在调用
json_decode时传入第二个参数true,即写成json_decode($json_data, true),解码后所有对象会被转为关联数组,遍历时用数组下标访问即可:$factItem['fact']、$factItem['length']。
内容的提问来源于stack exchange,提问作者jhayvon brutal
相关产品推荐
相关产品推荐

