Php Codeigniter:尝试获取非对象的属性
我试图使用foreach循环迭代一个结果集。下面是我在结果集上打印时的数组Php Codeigniter:尝试获取非对象的属性,php,arrays,loops,codeigniter,Php,Arrays,Loops,Codeigniter,我试图使用foreach循环迭代一个结果集。下面是我在结果集上打印时的数组 Array ( [0] => stdClass Object ( [xml] => [qid] => 406 [title] => Q by Sikander [description] =&
Array
(
[0] => stdClass Object
(
[xml] =>
[qid] => 406
[title] => Q by Sikander
[description] => test question created by Sikander
)
)
使用以下foreach循环
foreach ($xmls_nodes as $value){
echo $value->qid ;
echo $value->xml ;
echo $value->title ;
echo $value->description ;
}
现在,它将打印以下内容
Sikander编写的406 Q测试题
但在这之后,它还会为每个记录和行打印以下内容
遇到PHP错误严重性:注意
消息:正在尝试获取非对象的属性“qid”
如果我打印这些值并在此之后使用die语句,则不会出现相同的错误,请帮助我解决此问题您必须将此对象转换为数组,然后将其用作数组:
$arr = json_decode(json_encode($xmls_nodes), true);
您必须将此对象转换为数组,然后将其用作数组:
$arr = json_decode(json_encode($xmls_nodes), true);
您必须对对象进行JSON编码,然后将其解码回数组
[0]=>stdClass对象
$arr=json_解码(json_编码($xmls_节点),true);
然后循环遍历它您必须对对象进行JSON编码,然后将其解码回数组
[0]=>stdClass对象
$arr=json_解码(json_编码($xmls_节点),true);
然后循环遍历它这就是我已经在做的$xmls_nodes=json_decode(base64_decode($xml));然后在xmls_节点上执行循环。您看到您的代码和我的代码之间的区别了吗?json_decode(json_encode($xmls_nodes),TRUE)-您需要将TRUE作为第二个参数-写入其中的内容-如果为TRUE,json对象将作为关联数组返回;如果为false,JSON对象将作为对象返回。当为空时,JSON对象将作为关联数组或对象返回,具体取决于标志中是否设置了JSON_OBJECT_as_ARRAY。因此,不,您根本没有做相同的事情!!!您正在转换为对象,而不是数组!现在,它给出了非法的偏移量错误,同样的错误,但在数组而不是object上,您是否一直试图使用$value->qid。。。。您有数组,所以需要$value['qid']…这就是我已经在做的$xmls_nodes=json_decode(base64_decode($xml));然后在xmls_节点上执行循环。您看到您的代码和我的代码之间的区别了吗?json_decode(json_encode($xmls_nodes),TRUE)-您需要将TRUE作为第二个参数-写入其中的内容-如果为TRUE,json对象将作为关联数组返回;如果为false,JSON对象将作为对象返回。当为空时,JSON对象将作为关联数组或对象返回,具体取决于标志中是否设置了JSON_OBJECT_as_ARRAY。因此,不,您根本没有做相同的事情!!!您正在转换为对象,而不是数组!现在,它给出了非法的偏移量错误,同样的错误,但在数组而不是object上,您是否一直试图使用$value->qid。。。。你有数组,所以你需要$value['qid']…你可以像这样使用你的foreach($key=>$value)你可以像这样使用你的foreach($key=>$value){}