mrusklon
@mrusklon
Не получается? Яростно гугли!

Какую функцию array diff применить?

Есть 2 массива, в одном просто список пользователей без повторов , во втором теже пользователи но куча дублей и некоторых нет которые есть в первом массиве, надо найти тех кого нет и без дублей вывести в новом массиве
первый массив


array(200) {
  [0]=>
  array(8) {
    ["users_id"]=>
    string(2) "11"
    ["name"]=>
    string(56) "Игорев Игорь Игоревич"
    ["doljnost"]=>
    string(82) "Директор"
    ["mesto_rab"]=>
    string(2) "43"
    ["user_date"]=>
    string(10) "1983-12-16"
    ["user_visible"]=>
    string(1) "1"
    ["prinaly"]=>
    string(10) "2018-11-05"
    ["invalid"]=>
    string(1) "0"
  }
  [1]=>
  array(8) {
    ["users_id"]=>
    string(2) "13"
    ["name"]=>
    string(58) "Петросянов Петросян Петросянович"
    ["doljnost"]=>
    string(68) "комик"
    ["mesto_rab"]=>
    string(1) "1"
    ["user_date"]=>
    string(10) "1979-07-21"
    ["user_visible"]=>
    string(1) "0"
    ["prinaly"]=>
    string(10) "0000-00-00"
    ["invalid"]=>
    string(1) "0"
  }
  [2]=>....


второй массив

[0]=>
  array(5) {
    ["users_id"]=>
    string(2) "13"
    ["name"]=>
    string(54) "Петросянов Петросян Петросянович"
    ["date"]=>
    string(10) "2021-04-01"
    ["user_id"]=>
    string(2) "13"
    ["sub_hours"]=>
    string(2) "12"
  }
  [1]=>
  array(5) {
    ["users_id"]=>
    string(3) "13"
    ["name"]=>
    string(46) "Петросянов Петросян Петросянович"
    ["date"]=>
    string(10) "2021-04-01"
    ["user_id"]=>
    string(3) "13"
    ["sub_hours"]=>
    string(1) "8"
  }
  [2]=>....

  • Вопрос задан
  • 82 просмотра
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
$ids = array_unique(array_column($array2, 'users_id'));
$result = array_filter(
    $array1,
    function ($el) use ($ids) {
      return !in_array($el['users_id'], $ids);
    }
);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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