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