使用call_user_func_array()时注意“数组到字符串转换”

时间:2013-09-18 10:25:11

标签: php arrays

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

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

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

Notice: Array to string conversion

想知道造成这种情况的原因。希望有人能够启发我。

1 个答案:

答案 0 :(得分:1)

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

  

注意:当且仅当(string) $elem1 === (string) $elem2时,才认为两个元素相等。   用文字表示:当字符串表示相同时。

我不能肯定地说不知道你究竟想要做什么,但可能的解决方案是使用array_uintersect代替,这将允许你在代码中指定如何比较项目而不必将它们转换为字符串