eucalipt
@eucalipt
Самоделкин.

Как посчитать количество совпадений в ключах массива по регулярному выражению?

Есть регулярное выражение:
/([a-z]\w+)\_((ui)+)/is // это подходит ко всему типа 'anyword_ui'

И есть массив, в котором содержатся как такие 'anyword_ui' значения, так и совершенно другие.

Нужно подсчитать количество ключей в массиве, которые имеют вид как регулярное выражение выше.

array_count_values не подходит, так как возвращает вообще все значения массива.
count(in_array()) тоже не катит, так как всегда выдает 1 (это понятно, потому что in_array ведь булево значение отдает).

Как можно это сделать?
  • Вопрос задан
  • 653 просмотра
Пригласить эксперта
Ответы на вопрос 2
alexey-m-ukolov
@alexey-m-ukolov Куратор тега PHP
Проитерировать по ключам массива и проверить через preg_match.
Ответ написан
miraage
@miraage
Старый прогер
count(preg_grep(pattern, array));

// EDIT

codepad.org/OrY6d67A

<?php

$values = array(
  'anyword_ui',
  'random_ui',
  'bad_string',
  'foo_bar',
);

$filtered = preg_grep('/([a-z]\w+)\_((ui)+)/is', $values);
$count = count($filtered);

var_dump($count);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы