Сравните два массива объектов по разным именам свойств, используя array_udiff().Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Сравните два массива объектов по разным именам свойств, используя array_udiff().

Сообщение Anonymous »

Я пытаюсь найти элементы одного массива, которых нет в другом массиве PHP. У меня сложилось впечатление, что мне следует использовать функцию array_udiff с пользовательским обратным вызовом.
Первый массив представляет собой массив объектов со свойством id. Второй массив представляет собой массив объектов со свойством name. Свойства имени содержат идентификационный номер в строке, составляющей их имя.
Моя цель — убедиться, что идентификатор каждого объекта в первом массиве имеет соответствующий объект во втором массиве, который содержит это идентификатор в имени. Вот мой код: Я ожидал увидеть массив, содержащий только третий объект из первого массива, но вместо этого получаю следующее:

Код: Выделить всё

PHP Notice:  Undefined property: IdObj::$name in /home/ubuntu/test2.php on line 33
PHP Notice:  Undefined property: IdObj::$name in /home/ubuntu/test2.php on line 33
PHP Notice:  Undefined property: NameObj::$id in /home/ubuntu/test2.php on line 36
PHP Notice:  Undefined property: IdObj::$name in /home/ubuntu/test2.php on line 33
PHP Notice:  Undefined property: IdObj::$name in /home/ubuntu/test2.php on line 33
Array
(
[1] => IdObj Object
(
[id] => 2
)

[2] => IdObj Object
(
[id] => 3
)

)
Что мне здесь не хватает? Я неправильно использую функцию array_udiff()?

Подробнее здесь: https://stackoverflow.com/questions/229 ... rray-udiff
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»