PHP 跳过数组 stdClass 中的迭代

PHP skip iterate in array stdClass

我使用以下代码成功迭代了一个结合了数组和 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
         )
)

我需要从每个数组的 [x] stdClass 对象中检索 THIS 值; [0][1][2]等。但是我不需要从具有不同键的 [z] 中检索值。

因此,当 运行 上面的代码成功检索到所需的 THIS 值时,但在遍历不包含我想要的 stdClass 对象的数组时,我反复遇到错误:

PHP Notice: Undefined property: stdClass::

设置迭代以跳过某些不需要的对象的最简单方法是什么?或将其设置为在所需对象不存在时跳过?

最简单的方法是检查对象参数是否存在...

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;         
  }
}