【发布时间】:2018-11-11 15:54:59
【问题描述】:
您好,我有这样的 Json:
[{
"exam_code": "1",
"name": "Name1",
"surname": "Surname1",
"father_name": "Fname1",
"id_number": "211111",
"district_number": "21",
"school_number": "025",
"gender": "F",
"variant": "A",
"grade": "4",
"sector": "A",
"foreign_language": "I",
"answerList": {
"gradeFour": {
"lesson1": ["A", "C", "C", "C", "A", "A", "B", "B", " ", "C", "C", "B", "A", "C", "C", "B", "B", "C", "B", "A"],
"lesson2": ["B", "A", " ", "C", " ", "B", " ", "B", "B", "C", " ", " ", "B", "A", "A", "A", "C", "A", "B", "B"],
"lesson3": ["A", "C", "B", "B", "A", "A", "C", "A", "C", "C"],
"lesson4": ["B", "B", "A", "B", "B"],
"lesson5": ["B", "A", "A", "B", "B"],
"lesson6": ["B", "A", "A", "B", "A", "B", "A", "A", "C", "B"]
}
}
}]
我正在尝试在 foreach 循环中打印课程答案。
尝试以下代码:
<?php
$msc = microtime(true);
$array = (json_decode($raw_str,true));
foreach($array as $value){
echo $value['id_number'];
echo '<br/>';
foreach($value -> answerList->gradeFour as $val){
echo $val;
}
echo '<br>---------------------------';
echo '<br>';
}
$msc = microtime(true)-$msc;
echo ($msc * 1000) . ' ms'; // in millseconds
?>
但出现此错误
注意:试图获取非对象的属性 G:\xampp\htdocs\siec\string_test.php on line 50 注意:试图得到 在线 G:\xampp\htdocs\siec\string_test.php 中非对象的属性 50 警告:为 foreach() 提供的参数无效 G:\xampp\htdocs\siec\string_test.php 在第 50 行
【问题讨论】:
-
您开始使用
$value['id_number'],然后切换到对象符号访问($value -> answerList),您可以使用其中一种(取决于json_decode()的第二个参数)但不能混合使用他们。