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