拉JSON解码数组结果

因此,我成功访问了以下结果:


    $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

        );

    }

相反,它抛出:


试图获取非对象的属性


一只名叫tom的猫
浏览 126回答 2
2回答

富国沪深

更新foreach ($results as $row) {        $rows[] = array(            $row->myDataResult        );    }和foreach ($results->myDataResult as $row) {        $rows[] = $row;    }

慕尼黑8549860

根据您对注释给出的$ 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 ()}请注意,我将此代码写在内存上,可能是错误的,但是它应该给您一些提示。
打开App,查看更多内容
随时随地看视频慕课网APP