我有一个PHP对象 - $ new_step。
在Laravel中,如果我对一个数组 - dd($new_step->data->options);
- 的子对象进行了研究,我得到一个有效的条目:
array:5 [▼
0 => {#695 ▼
+"position": 1
+"value": "Dogs"
}
1 => {#694 ▼
+"position": 2
+"value": "Cats"
}
2 => {#693 ▼
+"position": 3
+"value": "Ferretts"
}
3 => {#669 ▼
+"position": 4
+"value": "Gophers"
}
4 => {#665 ▼
+"position": 5
+"value": "Possum"
}
]
然而,当我尝试对对象做一个foreach:
foreach ($new_step->data->options as $options) {
$options->count = 0;
}
我收到此错误:
ErrorException
Undefined property: stdClass::$options
为什么foreach会失败?
答案 0 :(得分:1)
要做到这一点foreach
,您必须在变量中存储Object的结果。
$temp = $new_step->data->options;
foreach ($temp as $options) {
$options->count = 0;
}
最后,您可以根据需要获取每个数组的列表count
变量吗?
dd($temp)
以下foreach
检查结果。
如果您再次找不到正确的数组,可能是$new_step->data->options
中有一些错误。
答案 1 :(得分:1)
事实证明,迭代中有一个数组是一个对象,而不是一个数组。为了测试,我将for
循环进一步移出链并通过它测试每次迭代,以查看第5次迭代是导致错误的那个。