Задача: нужно
отфильтровать элемент массива по некому критерию (у вас это -- наличие урла в одном из его подэлементов)
Решение: используем
фильтр (функция array_filter сделано именно для этих операций), который проверит на нужное условие (наш критерий) и вернет false или true, тем самым скажет -- оставить весь элемент или удалить.
$badUrl = "example.com";
$resultArray = array_filter($startArray, function($arr) use ($badUrl) {
return !(isset($arr['url']) && $arr['url'] === $excludeUrl);
});
В PHP 7.4 (когда будут доступны короткие лямбды):
$badUrl = "example.com";
$resultArray = array_filter(
$startArray,
fn($arr) => !(isset($arr['url']) && $arr['url'] === $excludeUrl)
);
Пример работы для вашего примера:
https://ideone.com/eXWm3o
Документация:
https://www.php.net/manual/ru/function.array-filter.php