Функция preg_grep
Функция preg_grep берилган регуляр ифодага мос келувчи массив элементларини қайтаради. Биринчи параметр сифатида функция регуляр ифодани ўз ичига олган сатрни, иккинчисида - излаш учун массивни қабул қилади. Учинчи ихтиёрий параметр регуляр ифодага мос келмайдиган элементларни қайтариш керакми ёки йўқлигини аниқлайди.
Синтаксис
preg_grep(pattern, array, [flags]);
Флаглар
| Флаг | Тавсиф |
|---|---|
PREG_GREP_INVERT |
Натижани инвертлайди - намунага МОС КЕЛМАЙДИГАН элементларни қайтаради. |
PREG_GREP_NO_ERROR |
Нотўғри регуляр ифодада хатолик ҳосил қилмайди (PHP 8.1+). |
Мисол
Рақамдан бошланувчи массивнинг барча элементларини топамиз:
<?php
$arr = ['a1', '2b', 'c3', '4d', 'e5'];
$res = preg_grep('/^\d/', $arr);
var_dump($res);
?>
Кодни бажариш натижаси:
['2b', '4d']
Мисол
Регуляр ифодага МОС КЕЛМАЙДИГАН элементларни олиш учун PREG_GREP_INVERT флагидан фойдаланамиз:
<?php
$arr = ['a1', '2b', 'c3', '4d', 'e5'];
$res = preg_grep('/^\d/', $arr, PREG_GREP_INVERT);
var_dump($res);
?>
Кодни бажариш натижаси:
['a1', 'c3', 'e5']
Мисол
Фақат рақамлардан иборат бўлган массивнинг барча элементларини топамиз:
<?php
$arr = ['123', 'abc', '45', 'de', '678'];
$res = preg_grep('/^\d+$/', $arr);
var_dump($res);
?>
Кодни бажариш натижаси:
['123', '45', '678']
Ҳам қаранг
-
preg_matchфункцияси,
регуляр ифодага мос келишни текширади -
preg_replaceфункцияси,
регуляр ифода бўйича излаш ва алмаштиришни бажаради