为了账号安全,请及时绑定邮箱和手机立即绑定

拉JSON解码数组结果

拉JSON解码数组结果

PHP
一只名叫tom的猫 2021-05-07 14:15:33
因此,我成功访问了以下结果:    $get = $this->getAllResults()->getContent();    $pull = json_decode($get);    $results = $pull->data->items[0];现在,当我在   dump($results->myDataResultOne);die或者:   dump($results->myDataResultTwo);die;它访问了我的结果,但是我无法在foreach中获得相同的结果,例如:$rows = [];    $rows[] = array(        "my first result",        "my second result",    );    foreach ($results as $row) {        $rows[] = array(            $row->myDataResultOne,            $row->myDataResultTwo        );    }相反,它抛出:试图获取非对象的属性
查看完整描述

2 回答

?
富国沪深

TA贡献1790条经验 获得超9个赞

更新


foreach ($results as $row) {

        $rows[] = array(

            $row->myDataResult

        );

    }


foreach ($results->myDataResult as $row) {

        $rows[] = $row;

    }


查看完整回答
反对 回复 2021-05-28
?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

根据您对注释给出的$ results转储,您实际上是在尝试获取一个对象,而不是一组项目。


您可以直接访问对象的方法和属性,例如:


$results->myDataResultOne


这就是为什么当您尝试转储它时正确获得它的原因。


当您尝试迭代一个对象时,您将进入对象迭代的领域, 最终您会使用键=>值模式来迭代obj结构。就您而言,您可以执行以下操作:


foreach($results AS $key => $value){

  var_dump($key);  // for the first iteration, it should be "id" (string)

  var_dump($value); // for the first iteration, it should be 1 ()

}

请注意,我将此代码写在内存上,可能是错误的,但是它应该给您一些提示。


查看完整回答
反对 回复 2021-05-28
  • 2 回答
  • 0 关注
  • 125 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信