我想检查多个数组中的匹配值,所以我通过将它们推入创建了一个多维数组$array
,然后编写了这行代码:
$result = call_user_func_array('array_intersect', $array);
我得到了我想要的结果,但我总是在特定的代码行上得到这个通知:
Notice: Array to string conversion
想知道这是什么原因造成的。希望有人能启发我。
您的数组(内部的第一级项目$array
)本身包含数组。这是不支持的array_intersect
,因为它将数组项视为字符串以确定相等性:
注意:当且仅当 时,两个元素被认为相等
(string) $elem1 === (string) $elem2
。换句话说:当字符串表示相同时。
如果不知道您到底要做什么,我不能肯定地说,但是一个可能的解决方案是使用array_uintersect
它,它允许您在代码中指定如何比较项目,而不必将它们转换为字符串。