提供数组时,is_array返回FALSE

时间:2014-04-29 02:03:09

标签: php arrays foreach

我正在尝试将多维对象转换为数组,以传递给需要数组的API调用。问题是,即使在使用惰性方法将对象转换为数组之后:

$data = json_decode(json_encode($object),true)

返回的值很有趣。我得到空数组值,其中值应为none,所以我尝试通过foreach循环运行它:

foreach ( $data as $key => $data_each ) {

    if ( is_array($data_each[$key]) ) { $data[$key] = NULL; }

}

但它没有捕获foreach循环中的数组值。在运行foreach之后,我检查我碰巧知道的值是作为一个空数组返回的,只要我在foreach循环之外使用in_array进行检查就是将它作为一个数组捕获。但由于某种原因不在循环内。

我错过了什么?

1 个答案:

答案 0 :(得分:0)

你有这个:

foreach ( $data as $key => $data_each ) {
    if ( is_array($data_each[$key]) ) { $data[$key] = NULL; }
}

此处,$data_each的值为$data[$key]。如果要检查值是否为is_array($data_each),请尝试array。循环中$data_each$data[$key]相同。