Sanes
@Sanes

Как посчитать ключи в массиве по маске?

Есть массив
[key.usage] => 0
[key.time] => 30000
[my.key0.time] => 331
[my.key1.time] => 331
[my.key2.time] => 331

Как можно получить кол-ко ключей my.key*? В данном примере 3.
Кол-во может меняться или даже отсутствовать.
В Laravel Collection ничего похожего не нашел.
  • Вопрос задан
  • 99 просмотров
Решения вопроса 2
0xD34F
@0xD34F
$count = array_reduce(array_keys($arr), function($acc, $n) {
  return $acc + (strpos($n, 'my.key') === 0);
}, 0);
Ответ написан
mad_maximus
@mad_maximus
$pattern = '/my.key.*/';
$count = null;

foreach ($arr as $key => $value) {
    if (!preg_match($pattern, $key, $match)) {
        continue;
    }

    $count += 1;
}

echo $count;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
от 150 000 руб.
Веб-Мост Москва
от 50 000 до 100 000 руб.
Getenergo Москва
от 110 000 до 150 000 руб.
22 июл. 2019, в 18:33
200 руб./за проект
22 июл. 2019, в 18:28
10000 руб./за проект