Возможный дубликат:
Удалить элемент из массива, если он существует в массиве «запрещенных слов»
Допустим, у меня есть следующие два массива PHP, которые содержат целые числа:
$foo = array(1, 5, 9, 14, 23, 31, 45); $bar = array(14, 31, 36);   Я хочу удалить элементы в $foo где одно и то же значение существует в $bar 
  Таким образом, результат процесса создаст массив $filteredFoo который содержит: 
 1, 5, 9, 23, 45 
  Просмотрев документы на php.net, похоже, не существует существующей функции для выполнения такого рода действий.  Могу ли я использовать опцию foreach и перебирать через $foo контрольные значения $bar на каждой итерации? 
  Вы можете использовать array_diff() : 
Возвращает массив, содержащий все записи из массива1, которые не присутствуют ни в одном из других массивов.
 $filteredFoo = array_diff($foo, $bar);