Рекурсия является соответствующей каждый раз, когда проблема может быть решена путем деления ее в подпроблемы, которые могут использовать тот же алгоритм для решения их. Алгоритмы на деревьях и отсортированные списки являются естественным соответствием. Много проблем в вычислительной геометрии (и 3D игры) могут быть решены рекурсивно с помощью двоичное пространство, делящее (BSP) деревья, толстые подразделения , или другие способы разделить мир на подразделения.
Рекурсия является также соответствующей, когда Вы пытаетесь гарантировать правильность алгоритма. Учитывая функцию, которая берет неизменные исходные данные и возвращает результат, который является комбинацией рекурсивных и нерекурсивных запросов к исходным данным, обычно легко доказать, что функция корректна (или не) использующий математическую индукцию. Это часто тяжело, чтобы сделать это с повторяющейся функцией или с исходными данными, которые могут видоизмениться. Это может быть полезно при контакте с финансовыми вычислениями и другими приложениями, где правильность очень важна.
Вы хотите array_diff
.
array_diff
возвращает массив, содержащий все записи изarray1
, которые не присутствует ни в одном другом массивы.
Итак, вам нужно что-то вроде:
$good = array_diff($arr, $disallowed_words);