如何计算PHP中的json元素?

时间:2014-08-22 11:46:34

标签: php json

我正在尝试获取该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"
    }
]

3 个答案:

答案 0 :(得分:4)

一种方法

<?php
$data = json_decode($json, true);

echo count($data);
echo count($data[0]);

或另一个

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

答案 1 :(得分:2)

Subelement count:

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

元素数:

echo sizeof($data);

答案 2 :(得分:1)

echo "Object Count = ".$sizeof($data)."<br/>";

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