2013-09-18 2 views
0

Я хотел, чтобы проверить соответствие значений в нескольких массивов, так что я сделал многомерный массив, вставив их в $array, а затем написал эту строку кода:Получение уведомления «Массив для преобразования строки» при использовании call_user_func_array()

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

Я получаю результат я хочу, но я всегда получаю это уведомление на этой конкретной строке кода:

Notice: Array to string conversion 

хотите знать, что причиной этого. Надеюсь, кто-то может просветить меня.

ответ

1

Ваши массивы (элементы первого уровня внутри $array) сами содержат массивы. Это не подкрепленное array_intersect, поскольку он рассматривает элементы массива как строки для целей определения равенства:

Примечание: Два элемента считаются равными, если и только если (string) $elem1 === (string) $elem2. В словах: когда строковое представление такое же.

Я не могу сказать определенно, не зная, что именно вы пытаетесь сделать, но возможное решение заключается в использовании array_uintersect вместо который позволит указать в коде, как сравнить элементы без необходимости заливки их в строку.

Смежные вопросы