Php in_array()工作正常,但抛出错误?

Php in_array()工作正常,但抛出错误?,php,Php,AFAIK-\u array()中的应返回TRUE或FALSE 在我的例子中,它确实验证为true,但仍然抛出一个错误: [数组中的函数]:第二个参数的数据类型错误 这条线是这样的: in_array($key,$instance['cfl2']); $instance['cfl2']是一个经过验证的数组,如下所示: array(2){[0]=>string(8)“price”[1]=>string(6)“age”} 我的问题是: 我做错了什么 为什么它抛出错误(但仍然工作正常并返回true

AFAIK-\u array()中的
应返回
TRUE
FALSE

在我的例子中,它确实验证为true,但仍然抛出一个错误:

[数组中的函数]:第二个参数的数据类型错误

这条线是这样的:

in_array($key,$instance['cfl2']);
$instance['cfl2']
是一个经过验证的
数组,如下所示:

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

我的问题是:

  • 我做错了什么
  • 为什么它抛出错误(但仍然工作正常并返回true)
  • 出现问题是因为我使用了某种嵌套数组吗?(这意味着数组项
    $instance['cfl2']
    本身实际上是一个数组
我还尝试了
$is=$instance['cfl2']
在_数组($key,$is)
-但结果是相同的错误。

在_数组中()
将处理为
在_数组中(“搜索“,$instance)

如果您使用的是嵌套数组或多维数组,那么
in_array()
将不起作用,您应该编写一个单独的函数来处理此问题。或者改用
array\u key_exists()
来处理。它将适用于某些特定情况。请确定是否满足您的要求


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


in_数组($key,(array)$instance['cfl2'])

试试
in_数组($key,(array)$instance['cfl2'])
这很奇怪。
gettype($instance['cfl2'])怎么说
?@BobSponge-hmmmm-似乎有效。没有错误!谢谢。添加它作为答案,我会接受它。但我也可以知道为什么会这样做,如果有错误,为什么它仍然验证为真?为什么“age”的长度是6?
字符串(6)“age”
@BobSponge-hmm-好问题。还有为什么价格是(8)。也许这是问题的一部分?数组可能有非英语字符。这可能与我今天发布的另一个问题有关-
if(array_key_exists($key,$instance['cfl2']))