因此,我成功访问了以下结果:
$get = $this->getAllResults()->getContent();
$pull = json_decode($get);
$results = $pull->data->items[0];
现在,当我在
的dump()上调试时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
);
}
相反,它抛出:
试图获取非对象的属性
答案 0 :(得分:0)
更新
foreach ($results as $row) {
$rows[] = array(
$row->myDataResult
);
}
使用
foreach ($results->myDataResult as $row) {
$rows[] = $row;
}
答案 1 :(得分:0)
根据您对评论给出的$ results转储,您实际上是在尝试获取一个对象,而不是一组项目。
您可以直接直接访问对象的方法和属性,例如:
$results->myDataResultOne
这就是为什么当您尝试转储它时正确获得它的原因。
当您尝试迭代一个对象时,您进入object iteration的领域,最后使用键=>值模式来迭代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 ()
}
请注意,我是在内存上编写此代码的,可能是错误的,但它应该给您一些提示。