2013-05-13 58 views
-1

我得到这个JSON格式的表格形式建设者插件,在希望有人可以帮帮忙,我需要计算发生的某些字段,以便次数我能为他们计数JSON multidimendional阵列

[ { "cssClass" : "checkbox", 
    "required" : "false", 
    "title" : "hello save", 
    "values" : { "2" : { "baseline" : "false", 
      "value" : "save" 
      }, 
     "3" : { "baseline" : "false", 
      "value" : " save 2" 
      }, 
     "4" : { "baseline" : "false", 
      "value" : "save 3" 
      }, 
     "5" : { "baseline" : "false", 
      "value" : "save 4" 
      }, 
     "6" : { "baseline" : "false", 
      "value" : "save 5 " 
      }, 
     "7" : { "baseline" : "false", 
      "value" : "Save 6" 
      } 
     } 
    }, 
    { "cssClass" : "textarea", 
    "required" : "false", 
    "values" : "you did not say hello properly" 
    }, 
    { "cssClass" : "checkbox", 
    "required" : "false", 
    "title" : "whats up save", 
    "values" : { "2" : { "baseline" : "false", 
      "value" : "i got your back" 
      }, 
     "3" : { "baseline" : "false", 
      "value" : "i got your back 2" 
      }, 
     "4" : { "baseline" : "false", 
      "value" : "i got your back 3" 
      }, 
     "5" : { "baseline" : "false", 
      "value" : "1 got your back 4" 
      }, 
     "6" : { "baseline" : "false", 
      "value" : "i got your back 5" 
      } 
     } 
    } 
] 
创建数据库

我希望能够算的CssClass复选框的数量和相应的值值,以帮助在MySQL创建插入数据库表或MongoDB的 我会喜欢它在这样

count($data[cssclass]) 
count($data[cssClass][values]) 

我得到的格式

Notice: Undefined index: cssClass in C:\wamp\www\callme\repo\index.php on line 45 

我会很高兴在PHP的任何解决方案或SICE的NodeJS很新成JSON

!======================== ================================================== ==! 大家好,非常感谢您的及时回复,我很欣赏并感到非常荣幸拥有你的家伙,但它并没有真正解决这个挑战,也许我还不够清楚,所以这是程序逻辑。对于给定的json数据,我会按照一种方式对它进行排序,以便我可以获取复选框的瓦片和为用户创建数据库条目的值,例如 用于复选框的数组获取标题和值的数量(值)我可以有像说 复选框1标题值= 6 复选框2标题值= 5

回答

0

你从来没有直接处理“json对象”。 JSON只是恰好代表JavaScript样式数据结构的文本字符串。你总是处理本地数据结构,所以

$array = json_decode($your_json); 
$count = count($array['cssclass']); 

是你在PHP做什么 - 转换为原生PHP数组/对象,然后做你的票。

至于什么,你应该指望,一旦你解码回本地PHP,你可以检查与

var_dump($array); 
+0

你好,谢谢你的回应,但它并没有真正解决这个挑战,也许我还不够清楚,所以这是程序逻辑。 – user2377965 2013-05-14 14:12:48

0

实际结构这应该让你有:

<?php 

$json = '[{"cssClass":"checkbox","required":"false","title":"hello save","values":{"2":{"value":"save","baseline":"false"},"3":{"value":" save 2","baseline":"false"},"4":{"value":"save 3","baseline":"false"},"5":{"value":"save 4","baseline":"false"},"6":{"value":"save 5 ","baseline":"false"},"7":{"value":"Save 6","baseline":"false"}}},{"cssClass":"textarea","required":"false","values":"you did not say hello properly"},{"cssClass":"checkbox","required":"false","title":"whats up save","values":{"2":{"value":"i got your back","baseline":"false"},"3":{"value":"i got your back 2","baseline":"false"},"4":{"value":"i got your back 3","baseline":"false"},"5":{"value":"1 got your back 4","baseline":"false"},"6":{"value":"i got your back 5","baseline":"false"}}}]'; 
$obj = json_decode($json, true); 

$cssClasses = array_filter($obj, function($el){ return $el["cssClass"] == "checkbox" }); 

print_r($cssClasses); 
1

您示例中的JSON对象是一个Array。您可以使用下面的代码来计算所有的值:

$total = 0; 
foreach($data as $row){ 
    $total += count($row['values']); 
} 

,或者您可以使用以下达到一个目标:

count($data[0]['values']); 

当然,你需要使用

json_decode($json_string,true) 

将您的json对象转换为PHP数组。