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

Удаление в массиве по значению другого массива?

Привет.
Подскажите как быстро удалить массив в многомерном массиве по значению из другого массива.
На примере:
Первый массив, откуда будем удалять
array(3) {
  [0]=>
  array(9) {
    ["id"]=>
    string(1) "1"
    ["colmn1"]=>
    string(9) "TEST name"
    ["ticker"]=>
    string(4) "TEST"
    ["value"]=>
    string(3) "100"
    ["uniq_id"]=>
    string(32) "51cac2ed2fee4ec3a074a9e04f89887b"
  }
  [1]=>
  array(9) {
    ["id"]=>
    string(1) "2"
    ["colmn1"]=>
    string(9) "TEST2"
    ["ticker"]=>
    string(4) "TEST2"
    ["value"]=>
    string(3) "100"
    ["uniq_id"]=>
    string(32) "902b29f87418415893372792d6913e31"
  }
  [2]=>
  array(9) {
    ["id"]=>
    string(1) "3"
    ["colmn1"]=>
    string(9) "TEST3"
    ["ticker"]=>
    string(4) "TEST3"
    ["value"]=>
    string(3) "100"
    ["uniq_id"]=>
    string(32) "76246b76f0f0423b8b7f75634afab64e"
  }
}


Второй массив содержит в себе что нужно удалить
array(2) {
  [0]=>
  string(22) "76246b76f0f0423b8b7f75634afab64e"
  [1]=>
  string(15) "902b29f87418415893372792d6913e31"
}


Поиск по полю uniq_id первого массива
Если такой id есть мне нужно удалить массив содержащий это поле

Всем кто откликнется - спасибо и хорошего вечера)
  • Вопрос задан
  • 183 просмотра
Подписаться 3 Простой 2 комментария
Решения вопроса 1
rozhnev
@rozhnev Куратор тега PHP
Fullstack programmer, DBA, медленно, дорого
Устественно для фильтрации массива использовать array_filter:
$res = array_filter(
	$arr,
	fn($el)=>!in_array($el["uniq_id"], $filter)
);
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
unset

Ну и как точно делать не надо:

array_diff_key(array_column($array, null, 'uniq_id'), array_flip($excludedKeys));

Ответ написан
Комментировать
Ваш ответ на вопрос

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

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