(PHP 5 >= 5.3.0)
preg_filter — Производит поиск и замену по регулярному выражению
$pattern
, mixed $replacement
, mixed $subject
[, int $limit
= -1
[, int &$count
]] )Функция preg_filter() идентична функции preg_replace() за исключением того, что возвращает только те значения (возможно, преобразованные), в которых найдено совпадение. Подробнее о работе функции читайте в документации к preg_replace().
Возвращает array, если аргумент subject
имеет тип array, или string в противном случае.
Если совпадений не найдено или возникла ошибка, возвращается пустой массив
array, когда subject
имеет тип array, или NULL
в противном случае.
Пример #1 Пример для сравнения функций preg_filter() и preg_replace()
<?php
$subject = array('1', 'а', '2', 'б', '3', 'А', 'Б', '4');
$pattern = array('/\d/', '/[а-я]/', '/[1а]/');
$replace = array('А:$0', 'Б:$0', 'В:$0');
echo "preg_filter возвращает\n";
print_r(preg_filter($pattern, $replace, $subject));
echo "preg_replace возвращает\n";
print_r(preg_replace($pattern, $replace, $subject));
?>
Результат выполнения данного примера:
preg_filter возвращает Array ( [0] => А:В:1 [1] => Б:В:а [2] => А:2 [3] => Б:б [4] => А:3 [7] => А:4 ) preg_replace возвращает Array ( [0] => А:В:1 [1] => Б:В:а [2] => А:2 [3] => Б:б [4] => А:3 [5] => А [6] => Б [7] => А:4 )