Функция preg_grep

Функцията preg_grep връща масив от елементи, които отговарят на зададения регулярен израз. Първият параметър функцията приема низ с регулярен израз, а вторият - масив за търсене. Третият незадължителен параметър определя дали да се връщат елементи, които не отговарят на регулярния израз.

Синтаксис

phppreg_grep(pattern, array, [flags]);

Флагове

Флаг Описание
PREG_GREP_INVERT Обръща резултата - връща елементи, които НЕ отговарят на шаблона.
PREG_GREP_NO_ERROR Не генерира грешка при неправилен регулярен израз (PHP 8.1+).

Пример

Нека намерим всички елементи от масива, които започват с цифра:

php<?php
  $arr = ['a1', '2b', 'c3', '4d', 'e5'];
  $res = preg_grep('/^\d/', $arr);
  var_dump($res);
?>

Резултат от изпълнението на кода:

php['2b', '4d']

Пример

Използваме флага PREG_GREP_INVERT за получаване на елементи, които НЕ отговарят на регулярния израз:

php<?php
  $arr = ['a1', '2b', 'c3', '4d', 'e5'];
  $res = preg_grep('/^\d/', $arr, PREG_GREP_INVERT);
  var_dump($res);
?>

Резултат от изпълнението на кода:

php['a1', 'c3', 'e5']

Пример

Намираме всички елементи от масива, съдържащи само цифри:

php<?php
  $arr = ['123', 'abc', '45', 'de', '678'];
  $res = preg_grep('/^\d+$/', $arr);
  var_dump($res);
?>

Резултат от изпълнението на кода:

php['123', '45', '678']

Вижте също

  • функцията preg_match,
    която изпълнява проверка за съответствие с регулярен израз
  • функцията preg_replace,
    която изпълнява търсене и замяна по регулярен израз