我通过使用以下代码组合数组和stdClass的大型数组成功迭代:
foreach ($arr as $A) {
$THIS=$A->w->b;
}
以下是我正在迭代的数组示例:
Array
(
[0] => Array
(
[w] => stdClass Object
(
[b] => THIS
)
[1] => Array
(
[w] => stdClass Object
(
[b] => THIS
)
[2] => Array
(
[w] => stdClass Object
(
[b] => THIS
)
[3] => Array
(
[z] => stdClass Object
(
[whatever] => NOT THIS
)
)
我需要从每个数组的THIS
stdClass对象中检索[x]
个值; [0]
,[1]
,[2]
,等等。但我不需要从[z]
检索具有不同密钥的值。
因此,当运行上面的代码时,我成功检索到了所需的THIS
值,但是在遍历不包含我想要的stdClass对象的数组时,我反复出错:
PHP Notice: Undefined property: stdClass::
最简单的方法是将迭代设置为跳过某些不需要的对象?或者如果没有所需的对象,将其设置为跳过?
答案 0 :(得分:2)
最简单的方法是检查对象参数是否存在......
foreach ( $arr as $A )
{
if( isset( $A['w'] ) )
{
$THIS = $A['w']->b;
}
}
编辑:您还可以查看更多条件
foreach ( $arr as $A )
{
if( is_array( $A ) and isset( $A['w'] ) and is_object( $A['w'] ) and isset( $A['w']->b ) )
{
$THIS = $A['w']->b;
}
}