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

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

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

На примере:

Первый массив, откуда будем удалять:

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, есть мне нужно удалить массив, содержащий это поле.
  • Вопрос задан
  • 212 просмотров
Подписаться 3 Простой 2 комментария
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Stepik
    PHP (pro)
    2 недели
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
Решения вопроса 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));

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

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

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