试图创建一个json,但收到一个php警告
当我运行此命令时:试图创建一个json,但收到一个php警告,php,arrays,json,Php,Arrays,Json,当我运行此命令时: <?php $array = array_count_values($roles); var_dump($roles); $result = array(); foreach($array as $key => $value) { $result[]=array("name"=>$key,"data"=>$value); } ?> 运行此操作时,我得到了正确的结果:
<?php
$array = array_count_values($roles);
var_dump($roles);
$result = array();
foreach($array as $key => $value) {
$result[]=array("name"=>$key,"data"=>$value);
}
?>
运行此操作时,我得到了正确的结果:
<?php
foreach($roles as $skill => $genderB) {
$males = isset($genderB['maschio']) ? count($genderB['maschio']): 0;
$females = isset($genderB['femmina']) ? count($genderB['femmina']): 0;
$total = $males + $females;
$data[] = $total;
echo "<li>We have ".$total." teachers of ".$skill.", ".$males." male, ".$females." female</li>";
}
?>
我想实现的是:
[{"name":"francese","data":2},{"name":"inglese","data":4}]
我弄不清楚应该使用哪个阵列
更新
这是注释中请求的json\u encode($roles)
{"francese":{"maschio":[true],"femmina":[true]},"chimica":{"maschio":[true,true]},"fisica":{"maschio":[true,true],"femmina":[true]},"scienze":{"maschio":[true]},"inglese":{"maschio":[true]},"spagnolo":{"maschio":[true]},"italiano":{"femmina":[true]}}
更新2
根据我得到的答案,我仍然没有得到正确的json
[{"name":0,"data":{"name":"francese","data":2}},{"name":1,"data":{"name":"chimica","data":2}},{"name":2,"data":{"name":"fisica","data":3}},{"name":3,"data":{"name":"scienze","data":1}},{"name":4,"data":{"name":"inglese","data":1}},{"name":5,"data":{"name":"spagnolo","data":1}},{"name":6,"data":{"name":"italiano","data":1}}]
当我跑的时候
$result = array();
foreach($final_array as $key => $value) {
$result[]=array("name"=>$key,"data"=>$value);
}
echo json_encode($result);
应该是
[{“名称”:“法语”,“数据”:2},{“名称”:“英格尔语”,“数据”:4}]
您只需要创建数组并将其推入最终数组,否则您的代码将非常完美
// $data[] = $total;
$final_array[]=array("name"=>$skill,"data"=>$total);
更新1:
<?php
$roles ='{"francese":{"maschio":[true],"femmina":[true]},"chimica":{"maschio":[true,true]},"fisica":{"maschio":[true,true],"femmina":[true]},"scienze":{"maschio":[true]},"inglese":{"maschio":[true]},"spagnolo":{"maschio":[true]},"italiano":{"femmina":[true]}}';
$roles_new = json_decode($roles,true);
echo "<pre>";
print_r($roles_new);
$final_array =array();
foreach($roles as $skill => $genderB) {
$males = isset($genderB['maschio']) ? count($genderB['maschio']): 0;
$females = isset($genderB['femmina']) ? count($genderB['femmina']): 0;
$total = $males + $females;
$final_array[]=array("name"=>$skill,"data"=>$total);
}
print_r($final_array);
echo json_encode($final_array);
?>
您只需要创建数组并将其推入最终数组,否则您的代码将非常完美
// $data[] = $total;
$final_array[]=array("name"=>$skill,"data"=>$total);
更新1:
<?php
$roles ='{"francese":{"maschio":[true],"femmina":[true]},"chimica":{"maschio":[true,true]},"fisica":{"maschio":[true,true],"femmina":[true]},"scienze":{"maschio":[true]},"inglese":{"maschio":[true]},"spagnolo":{"maschio":[true]},"italiano":{"femmina":[true]}}';
$roles_new = json_decode($roles,true);
echo "<pre>";
print_r($roles_new);
$final_array =array();
foreach($roles as $skill => $genderB) {
$males = isset($genderB['maschio']) ? count($genderB['maschio']): 0;
$females = isset($genderB['femmina']) ? count($genderB['femmina']): 0;
$total = $males + $females;
$final_array[]=array("name"=>$skill,"data"=>$total);
}
print_r($final_array);
echo json_encode($final_array);
?>
您能否提供
json\u encode($roles)
,以便我们更好地帮助您out@SahilGulati当然,刚刚更新了这个问题。您能提供json\u encode($roles)
吗?这样我们可以更好地帮助您out@SahilGulati当然,如果我运行这个$array=array\u count\u values($final\u array),就用ITI更新了这个问题; $结果=数组();foreach($key=>$value的数组){$result[]=array(“name”=>$key,“data”=>$value);}?>
I getWarning:array\u count\u values():只能计算字符串和整数值代码>删除此行$array=array\u count\u value($roles);是的,但如果我删除它,我如何访问$final_数组?是的,好的,我得到了,但我需要按照问题运行第一个函数,我在顶部写的第一个函数,因为这将基本上生成我正在构建的图表所需的json。这是[{“name”:0,“data”:{“name”:“francese”,“data”:2},{“name”:1,“data”:{“名称”:“chimica”,“data”:2},{“name”:2,“data”:{“name”:“fisica”,“data”:3},{“name”:3,“data”:{“name”:“scienze”,“data”:1},{“name”:4,“data”:{“name”:“inglese”,“data”:1},{“name”:“spagnolo”,“data”:1},{“name”:“data”:},{“name”:6,“data”:{“name”:“name”:“italiano”,“data”:1},{code>当我运行数组时,<($final_数组作为$key=>$value){$result[]=array(“name”=>$key,“data”=>$value);}
如果我运行这个$array=array\u count_value($final_数组);$result=array();foreach($array作为$key=>$value){$result[]=array(“name”=>$key,“data”=>$value);)?>
我得到警告:数组计数值():只能计数字符串和整数值!
删除此行$array=array计数值($roles);是的,但如果我删除它,我如何访问$final_数组?是的,我得到了,但我需要按照问题运行第一个函数,我在顶部写的第一个函数,因为这将基本上生成我正在构建的图表所需的json。这是[{“name”:0,“data”:{“name”:“francese”,“data”:2},{“name”:1,“data”:{”名称:““chimica”,“data”:2}},{“name”:2,“data”:{“name”:“fisica”,“data”:3},{“name”:3,“data”:{“name”:“scienze”,“data”:1},{“name”:4,“data”:{“name”:“inglese”,“data”:1>},{“name”:“spagnolo”,“data”:1},{“name”:6,“data”:{“data”:{“name”:{“name”:“italiano”,“data”:1},{code>当我运行数组($code=foreach=$U)时($code=$code=$FINARY)的最终值为${$result[]=array(“name”=>$key,“data”=>$value);}
[{"name":"francese","data":2},{"name":"chimica","data":2},{"name":"fisica","data":3},{"name":"scienze","data":1},{"name":"inglese","data":1},{"name":"spagnolo","data":1},{"name":"italiano","data":1}]