Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取php中json元素的计数_Php_Json_Element - Fatal编程技术网

获取php中json元素的计数

获取php中json元素的计数,php,json,element,Php,Json,Element,我的目标是: 如何获取所有ID的计数(如“id1527”或“id6376373”…)解码到一个数组并对元素进行计数 count(json_decode($json, true)); 我希望你是认真的 $str = '{"id1527":{"stats":"true"},"id6376373":{"stats":"true"},"id63737":"stats":"true"},"x444":{"stats":"false"}}'; echo count(preg_grep("/^id(\d

我的目标是:


如何获取所有ID的计数(如“id1527”或“id6376373”…)

解码到一个数组并对元素进行计数

count(json_decode($json, true));
我希望你是认真的

$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”,并仅考虑这些记录

解析JSON后,
array\u filter()
将其过滤到以
id
开头的键,然后
count()
对其进行计数:

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

所有顶级属性都将是ID,还是需要验证?我只需要ID元素计数。并非所有元素基于您提供的信息,这是ID的计数。ID是JSON对象第一级中唯一的键。可以添加一些描述。代码检查JSON数组的顶级键是否有前面的文本“id”,并只考虑这些记录。我也应该改变我的答案吗?我是新来的,我知道它的作用,但提问者可能不知道。最好添加到答案中。
count(array_filter(json_decode($json, true), function($key) {
    return substr($key, 0, 2) == "id";
}, ARRAY_FILTER_USE_KEY));