Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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
试图创建一个json,但收到一个php警告_Php_Arrays_Json - Fatal编程技术网

试图创建一个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,"d‌​ata":{"name":"chimic‌​a","data":2}},{"name‌​":2,"data":{"name":"‌​fisica","data":3}},{‌​"name":3,"data":{"na‌​me":"scienze","data"‌​:1}},{"name":4,"data‌​":{"name":"inglese",‌​"data":1}},{"name":5‌​,"data":{"name":"spa‌​gnolo","data":1}},{"‌​name":6,"data":{"nam‌​e":"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 get
Warning: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}]