0

AFAIK -in_array()应该返回TRUEFALSE

就我而言,它确实验证为真 - 但仍然抛出错误:

[function.in-array]:第二个参数的数据类型错误

这条线是这样的:

in_array($key,$instance['cfl2']);

并且$instance['cfl2']是经过验证的array,如下所示:

array(2) { [0]=> string(8) "price" [1]=> string(6) "age" }

我的问题是:

  • 我究竟做错了什么。
  • 为什么它会抛出错误(但仍然可以正常工作并返回 true)
  • 是否因为我使用某种嵌套数组而出现问题?(意味着一个数组项$instance['cfl2']实际上本身就是一个数组?

我也试过$is = $instance['cfl2']-in_array($key,$is)但结果是同样的错误。

4

2 回答 2

2

您可以将变量强制转换为数组以避免此错误:

in_array($key, (array) $instance['cfl2'])

于 2013-02-21T11:53:25.973 回答
0

in_array()将作为in_array("search", $instance).

如果您使用的是嵌套或多维数组,那么将in_array()无法工作,您应该编写一个单独的函数来处理这个问题。或array_key_exists()改为使用。它适用于某些特定情况。看看你的要求是否得到满足。

IE

if(array_key_exists($key,$instance['cfl2']))
于 2013-01-22T12:45:18.827 回答