AFAIK - in_array()
应该返回TRUE
或FALSE
。
在我的情况下,它确实验证为真 - 但仍然抛出错误:
[function.in-array]:第二个参数的错误数据类型
这一行是这样的:
in_array($key,$instance['cfl2']);
且$instance['cfl2']
是经过验证的array
,如下所示:
array(2) { [0]=> string(8) "price" [1]=> string(6) "age" }
我的问题是:
$instance['cfl2']
本身就是一个数组?我也尝试了$is = $instance['cfl2']
和in_array($key,$is)
- 但结果是同样的错误。
答案 0 :(得分:2)
您可以将变量强制转换为数组以避免此错误:
in_array($key, (array) $instance['cfl2'])
答案 1 :(得分:0)
in_array()
将以in_array("search", $instance)
处理。
如果您使用嵌套或多元数组,那么in_array()
将不起作用,您应该编写一个单独的函数来处理它。或者使用array_key_exists()
代替。它适用于某些特定情况。了解您的要求是否得到满足。
即
if(array_key_exists($key,$instance['cfl2']))