ddv88
@ddv88
Binance Futures

Разница многомерных массивов?

Пытаюсь с помощью array_udiff получить разницу из массивов. Но на выходe постоянно пустой массив.
Нужно сравнить только по ID, но в итоге получать все значения как они были изначально.
Подскажите что не так.

class api {
     private function arrayCompare($array1, $array2){
          if ($array1["ID"] == $array2["ID"]) {
               return 1;
          } else {
              return 0;
          }
     }

     private function foo(){
     $array1 = [
          [0] => [
                 [ID] => 11111
                 [name] => ИМЯ
                 [photo] => Ссылка
            ]
          [1] => [
                 [ID] => 22222
                 [name] => Другое Имя
                 [photo] => Другая ссылка
            ]
     ]

     $array2 = [
          [0] => [
                 [ID] => 11111
                 [name] => ИМЯ
                 [photo] => Ссылка
            ]
          [1] => [
                 [ID] => 33333
                 [name] => Другое Имя
                 [photo] => Другая ссылка
            ]
     ]
     array_udiff($array2, $array1, ['api', 'arrayCompare']);
    }
}


Есть два списка. Один обновляется один раз в сутки, второй раз в пол часа. Нужно отслеживать ID людей которые добавляются или удаляются и выводить их в отдельный массив и ну далее записывать или как то обрабатывать еще. Порядок их может меняться в зависимости от даты обновления.
  • Вопрос задан
  • 290 просмотров
Решения вопроса 1
27cm
@27cm
TODO: Написать статус
Начнём с того, что в коде синтаксические ошибки:
ideone.com/by1IJa
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Ivanq
@Ivanq
Знаю php, js, html, css
Мне казалось, возвращаемое значение должно быть таким:
-1 -- a < b
0 -- a == b
1 -- a > b

UPD Как уже сказал 27cm, у Вас в коде есть ошибки. Такой синтаксис:
$array1 = [
          [0] => [
                 [ID] => 11111
                 [name] => ИМЯ
                 [photo] => Ссылка
            ]
          [1] => [
                 [ID] => 22222
                 [name] => Другое Имя
                 [photo] => Другая ссылка
            ]
     ]

должен быть таким:
$array1 = [
    [
        "ID" => 11111,
        "name" => "ИМЯ",
        "photo" => "Ссылка"
    ],
    [
        "ID" => 22222,
        "name" => "Другое Имя",
        "photo" => "Другая Ссылка"
    ]
];
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы