Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Codeigniter:尝试获取非对象的属性_Php_Arrays_Loops_Codeigniter - Fatal编程技术网

Php Codeigniter:尝试获取非对象的属性

Php Codeigniter:尝试获取非对象的属性,php,arrays,loops,codeigniter,Php,Arrays,Loops,Codeigniter,我试图使用foreach循环迭代一个结果集。下面是我在结果集上打印时的数组 Array ( [0] => stdClass Object ( [xml] => [qid] => 406 [title] => Q by Sikander [description] =&

我试图使用foreach循环迭代一个结果集。下面是我在结果集上打印时的数组

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){}