PHP遍历JSON数组输出异常且报illegal string offset错误如何解决
问题原因
- 你的JSON结构中,
$item['vehicle']本身是单级关联数组,而非包含多个车辆数据的二维数组,你额外添加了一层foreach($item['vehicle'] as $data)遍历逻辑,等于直接遍历关联数组的字符串值,遍历过程中$data是单个字符而非数组,使用数组键访问字符串自然抛出illegal string offset错误,输出内容也都是拆分后的单个字符。
修复方案
直接删除多余的第二层foreach循环,直接从$item['vehicle']中读取字段即可,修复后代码如下:
$str = file_get_contents('tst.json'); $json = json_decode($str, true); foreach($json['results'] as $item){ $data = $item['vehicle']; echo $data['ownershipCondition']; echo "<br>"; echo $data['registration']; echo "<br>"; echo $data['vin']; echo "<br>"; echo $data['make']; echo "<br>"; echo $data['model']; echo "<br>"; echo "<br>"; }
内容的提问来源于stack exchange,提问作者Harry
相关产品推荐
相关产品推荐

