在使用 call_user_func_array() 时收到“数组到字符串转换”的通知


Getting notice "Array to string conversion" when using call_user_func_array()

我想检查多个数组中的匹配值,所以我通过将它们推入$array来制作一个多维数组,然后编写了以下代码行:

$result = call_user_func_array('array_intersect', $array);

我得到了我想要的结果,但我总是在那一行特定的代码上收到这个通知:

Notice: Array to string conversion

想知道是什么原因造成的。希望有人能启发我。

您的数组($array 中的一级项)本身包含数组。array_intersect不支持这样做,因为它将数组项视为字符串以确定相等性:

注意:当且仅当两个元素相等,当且仅当(string) $elem1 === (string) $elem2。 简而言之:当字符串表示相同时。

在不知道您到底要做什么的情况下,我不能肯定地说,但是一种可能的解决方案是改用array_uintersect,这将允许您在代码中指定如何比较项目,而不必将它们转换为字符串。