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