php - 使用PHP循环检索json数据
问题描述
我正在尝试通过循环获取数据。数据未显示在循环内。
这是我的代码:
curl_setopt_array($curl, array(
CURLOPT_URL => "the-api-url-here",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_POSTFIELDS => "",
CURLOPT_COOKIE => "__cfduid=d2bf2be115641329bdf9346148b5af7401597825930; XSRF-TOKEN=eyJpdiI6IllzNkloR2NaSE0zSlNFV2gySEFqclE9PSIsInZhbHVlIjoiNURQMlRQUjJveFJsYUxNdGl1Rm5YSXhzcTBKODcyUThIUlRZSUJBQXppMkhKVHdGWG85WWliTW5VQkpUZzdEciIsIm1hYyI6IjZhNjMyNzlkNGRlODczZjUxNjk0ZGY5ZWQ2NTFjYWE2NTgxMzNhOTYzNTE4NzI2ZjNkYzQ0NjIzZDY4NTVkMjMifQ%253D%253D; propertydata=eyJpdiI6IkNXVWx2Qmo3S0toWG96MVB2ZFFJUFE9PSIsInZhbHVlIjoiVEx5dWtEK1Qwa21ESFVrY2YrQ3ZyQ1MvNjdTL0Y1SWJwckhzWktaWTNBc2E5Q3ljZlRHQnZMeE5EWmxzcFhVeSIsIm1hYyI6ImFkZWFhNDMzOWJlMTRkNDY2ZTA2YTc0ODE5NDI4ZmM0M2ZiMzg3ZTY3NTg0N2NiNjZiN2E2ODE5YmRmNWUxN2YifQ%253D%253D",
CURLOPT_HTTPHEADER => array(
"content-type: application/json"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
$response = json_decode($response, true);
echo 'Average Price: '. $response['data']['average'] . '<br/><br/>'; // this is shown!
foreach($response as $query){
// this is where your WP query_posts( $args ); will go
// this is how you'll access the array variables
echo "<br>Query: " . $query->raw_data->address;
}
}
这是我的 json 数据的样子
{"status":"success","postcode":"qqqqqq","postcode_type":"full","url":"api-url","max_age":18,"data":{"points_analysed":20,"radius":"0.08","date_earliest":"2019-03-27","date_latest":"2020-06-25","average":461850,"70pc_range":[240000,550000],"80pc_range":[225000,595500],"90pc_range":[225000,895000],"100pc_range":[200000,1050000],"raw_data":[{"date":"2019-03-27","address":"72, Ditchling Road, BN1 4SG","price":1050000,"lat":null,"lng":null,"bedrooms":5,"type":null,"tenure":"freehold","class":"old_stock","distance":"0.02"},{"date":"2019-09-12","address":"106, Ditchling Road, BN1 4SG","price":470000,"lat":null,"lng":null,"bedrooms":3,"type":null,"tenure":"freehold","class":"old_stock","distance":"0.02"},{"date":"2019-06-28","address":"3, Roundhill Street, BN2 3RG","price":385000,"lat":null,"lng":null,"bedrooms":null,"type":null,"tenure":"freehold","class":"old_stock","distance":"0.03"},{"date":"2019-08-30","address":"15, Roundhill Street, BN2 3RG","price":420000,"lat":null,"lng":null,"bedrooms":3,"type":null,"tenure":"freehold","class":"old_stock","distance":"0.03"},{"date":"2020-01-20","address":"29, Belton Road, BN2 3RE","price":545000,"lat":"50.83630150","lng":"-0.13244240","bedrooms":4,"type":null,"tenure":"freehold","class":"old_stock","distance":"0.03"},{"date":"2019-12-12","address":"St Saviours Court, Flat 4, Ditchling Road, BN1 4SU","price":225000,"lat":"50.83600530","lng":"-0.13386500","bedrooms":null,"type":"flat","tenure":"leasehold","class":"old_stock","distance":"0.04"},{"date":"2019-08-23","address":"St Saviours Court, Flat 14, Ditchling Road, BN1 4SU","price":243000,"lat":null,"lng":null,"bedrooms":null,"type":"flat","tenure":"leasehold","class":"old_stock","distance":"0.04"},{"date":"2019-11-29","address":"128, Ditchling Rise, BN1 4QR","price":895000,"lat":"50.83647270","lng":"-0.13375510","bedrooms":4,"type":null,"tenure":"freehold","class":"old_stock","distance":"0.05"},{"date":"2019-12-05","address":"37, Princes Crescent, BN2 3RA","price":440000,"lat":"50.83524460","lng":"-0.13272890","bedrooms":2,"type":null,"tenure":"freehold","class":"old_stock","distance":"0.05"},{"date":"2020-01-10","address":"32, Princes Road, BN2 3RH","price":535000,"lat":"50.83663710","lng":"-0.13214130","bedrooms":3,"type":null,"tenure":"freehold","class":"old_stock","distance":"0.06"},{"date":"2019-06-12","address":"24, Crescent Road, BN2 3RP","price":550000,"lat":null,"lng":null,"bedrooms":4,"type":null,"tenure":"freehold","class":"old_stock","distance":"0.06"},{"date":"2020-04-03","address":"62, Crescent Road, BN2 3RP","price":540000,"lat":"50.83567610","lng":"-0.13163990","bedrooms":null,"type":null,"tenure":"freehold","class":"old_stock","distance":"0.06"},{"date":"2019-07-12","address":"9, Crescent Road, BN2 3RP","price":475000,"lat":null,"lng":null,"bedrooms":3,"type":null,"tenure":"freehold","class":"old_stock","distance":"0.06"},{"date":"2019-09-13","address":"2, Flat 2, Crescent Road, BN2 3RP","price":225000,"lat":null,"lng":null,"bedrooms":null,"type":"flat","tenure":"leasehold","class":"old_stock","distance":"0.06"},{"date":"2020-01-29","address":"25, Princes Road, BN2 3RH","price":515000,"lat":"50.83681580","lng":"-0.13230140","bedrooms":3,"type":null,"tenure":"freehold","class":"old_stock","distance":"0.07"},{"date":"2020-02-10","address":"14, Vere Road, BN1 4NR","price":500000,"lat":"50.83530370","lng":"-0.13434380","bedrooms":5,"type":null,"tenure":"freehold","class":"old_stock","distance":"0.07"},{"date":"2019-11-22","address":"32, Vere Road, BN1 4NR","price":338500,"lat":"50.83569970","lng":"-0.13451380","bedrooms":2,"type":"flat","tenure":"leasehold","class":"old_stock","distance":"0.07"},{"date":"2020-01-31","address":"10, Crescent Road, BN2 3RP","price":595500,"lat":"50.83647370","lng":"-0.13147010","bedrooms":4,"type":null,"tenure":"freehold","class":"old_stock","distance":"0.07"},{"date":"2019-11-22","address":"55, Ground Floor Flat, Vere Road, BN1 4NQ","price":240000,"lat":"50.83526180","lng":"-0.13449100","bedrooms":null,"type":"flat","tenure":"leasehold","class":"old_stock","distance":"0.08"},{"date":"2020-06-25","address":"73, Princes Crescent, BN2 3RA","price":200000,"lat":"50.83549010","lng":"-0.13122770","bedrooms":null,"type":null,"tenure":"freehold","class":"old_stock","distance":"0.08"}]},"process_time":"0.02"}
为什么循环上什么都没有显示?我究竟做错了什么?
解决方案
这应该有效:
foreach($response['data']['raw_data'] as $raw_data){
echo "<br>Query: " . $raw_data['address'];
}
json_decode 返回一个关联数组。(因为第二个参数)在您的 foreach 中,您使用的是对象表示法。
推荐阅读
- python - 将列表中的连续整数分组,它们之间具有特定的容差 Python3
- c - 具有完全可重现示例 C 的 AVL 树上的旋转
- html - Firefox 上的样式滚动条。如何摆脱滚动条上的黑色边框/轮廓?
- reactjs - 我想在单击重置按钮时清除输入字段中的所有信息和状态
- reactjs - React:如何使用这个 API?
- flutter - 为什么 MaterialPageRoute 在颤动中回到原始页面
- java - 从 Firebase 实时数据库中检索历史数据
- angular - Angular:将数据传递给父组件后,子组件监听返回
- python - 将数据转换为 ENVI 格式
- microsoft-graph-api - 从 Microsoft Graph API 获取用户的家庭电话