Задать вопрос
ILoveYAnny
@ILoveYAnny

Как удалить массив А, если значение его ключа пересеклось со значением массива B?

Здравствуйте, ломаю голову как правильно можно почистить массив при следующих условия.

Есть многомерный массив А
Array 
( 
    Array 
    ( 
    [id] => 1 
    [value] => 222 
    )
    Array 
    ( 
    [id] => 2 
    [value] => 333 
    )
)

И многомерный массив B
Array 
( 
    Array 
    ( 
    [id] => 2 
    [name] => "Bob" 
    )
    Array 
    ( 
    [id] => 3 
    [name] => "Anna" 
    )
)


Как можно сравнить оба массива, и если id пересекаются, то в массиве А, полностью удалить соотвествующий массив.
Иными словами, в данном примере, в массиве А мне нужно удалить:
Array 
    ( 
    [id] => 2 
    [value] => 333 
    )


У меня голова взрывается, когда пытаюсь спроектировать функцию... Нашёл что-то вроде array_diff() , но как применить в такой сложности и уровне вложенности не могу.. Как правильно можно это реализовать?
  • Вопрос задан
  • 178 просмотров
Подписаться 1 Оценить 1 комментарий
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
$A = array_udiff($A, $B, function($a, $b) { return $a['id'] - $b['id'] });
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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