因此,我成功访问了以下结果: $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;
}
慕尼黑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 ()
}
请注意,我将此代码写在内存上,可能是错误的,但是它应该给您一些提示。
- 2 回答
- 0 关注
- 125 浏览
添加回答
举报
0/150
提交
取消