如何在PHP中计算json元素


How to count json element in PHP?

我正试图获得该json的对象计数和键计数。我尝试使用count()函数,它返回2.

$data = json_decode($json, true);
echo count($data);

我想让2作为对象计数,22作为每个对象的键计数。

[
    {
       "name" : "EF",  
       "OrganizationID" : "1",  
       "name2" : "EF2",  
       "m2014" : "0",  
       "m2013" : "0",  
       "m2012" : "0",  
       "m2011" : "0",  
       "m2010" : "0",  
       "m2009" : "0",  
       "m2008" : "0",  
       "m2007" : "0",  
       "m2006" : "0",  
       "m2005" : "0",  
       "m2004" : "0",  
       "m2003" : "0",  
       "m2002" : "0",  
       "m2001" : "0", 
       "me" : "0",
       "a" : "0", 
       "a2" : "0", 
       "b" : "0", 
       "u" : "1"
   },{
       "name" : "IO",  
       "OrganizationID" : "2",  
       "name2" : "IOX",  
       "m2014" : "83",  
       "m2013" : "78",  
       "m2012" : "71",  
       "m2011" : "73",  
       "m2010" : "74",  
       "m2009" : "137",  
       "m2008" : "202",  
       "m2007" : "206",  
       "m2006" : "232",  
       "m2005" : "313",  
       "m2004" : "292",  
       "m2003" : "306",  
       "m2002" : "283",  
       "m2001" : "204", 
       "me" : "2339",
       "a" : "362", 
       "a2" : "0", 
       "b" : "1", 
       "u" : "1"
    }
]

一种方法

<?php
$data = json_decode($json, true);
echo count($data);
echo count($data[0]);

或另一个

echo count($data);
foreach($data as $o){
    echo count($o);
}

子元素计数:

echo sizeof($data, COUNT_RECURSIVE) - sizeof($data);

元素数:

echo sizeof($data);

echo "Object Count = ".$sizeof($data)."<br/>";
foreach($data as $key=>$arr)
{
   echo "Key - ".$key." Count = ".$sizeof($arr)."<br/>";
}