【问题标题】:is_array returning FALSE when array is provided提供数组时 is_array 返回 FALSE
【发布时间】:2014-04-29 10:08:14
【问题描述】:

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

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

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

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

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

}

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

我错过了什么?

【问题讨论】:

  • 请分享你的json
  • ^ 和/或 var_dump($data_each);.

标签: php arrays foreach


【解决方案1】:

你有这个:

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

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

【讨论】:

  • 知道了!!伙计,我已经醒太久了。谢谢一百万!
  • 不客气,顺便说一句,我也为整个骑士醒来,该睡觉了,因为现在是早上的8:12 :-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-11
相关资源
最近更新 更多