получить количество элементов json в переполнении стека

Мой JSON это:

{
"id1527":{"stats":"true"},
"id6376373":{"stats":"true"},
"id63737":{"stats":"true"}
}

как получить количество всех идентификаторов (например, «id1527» или «id6376373» …)

-2

Решение

После анализа JSON, array_filter() чтобы отфильтровать это только те, с ключом, который начинается с id, а также count() посчитать их:

count(array_filter(json_decode($json, true), function($key) {
return substr($key, 0, 2) == "id";
}, ARRAY_FILTER_USE_KEY));
2

Другие решения

Я надеюсь, что вы имеете в виду это.

$str = '{"id1527":{"stats":"true"},"id6376373":{"stats":"true"},"id63737":"stats":"true"},"x444":{"stats":"false"}}';

echo count(preg_grep("/^id(\d)+$/",array_keys(json_decode($str,true))));

Этот фрагмент кода проверяет, имеет ли ключ верхнего уровня массива JSON предшествующий текстовый «id», и учитывает только эти записи.

1

Декодировать в массив и считать элементы.

count(json_decode($json, true));
0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector