从ajax调用在php中创建新的字符串json

时间:2014-12-02 17:27:51

标签: php json

我有一个带有此页面的html页面,当我提交表单时,我发送这样的ajax数据:

array(7) { ["idfornitore"]=> string(1) "1" ["criterio-5"]=> string(1) "4" ["voto-5"]=> string(1) "1" ["parziale-5"]=> string(1) "4" ["criterio-3"]=> string(1) "2" ["voto-3"]=> string(1) "3" ["parziale-3"]=> string(1) "6"}

示例:

["criterio-5"] => string(1) "4" ["voto-5"]=> string(1) "1" ["parziale-5"]=> string(1) "4"
["criterio-5"] => is "weight of criterio5"
["voto-5"]     => is "value of criterio5"
["parziale-5"] => is "totale of criterio5" ( weight * value )

我的服务php执行此操作:

$totale = 0;
foreach ($_POST as $key => $value) {
    if (strstr($key, "parziale")) {
        $totale = $totale + $value;
    }
}

==================================

我会scorrermi数组并形成一个字符串json所以'made:

{    
    "parziali": [
        {"idcriterio": "5", "peso": "4" , "voto": "1", "parziale": "5" },
        {"idcriterio": "3", "peso": "2" , "peso": "3", "peso": "6" }
    ]
}

我该怎么办?

1 个答案:

答案 0 :(得分:0)

这看起来类似于构建xml元素 - 构建{criterio,voto,parziale}的元组,其中标签以标准值为后缀

$tuples = array();
foreach ($input as $key => $value) {
    list($field, $suffix) = explode($key);
    if ($field === 'idcriterio') {
      $tuples[$suffix] = $suffix;
      $tuples['peso'] = $value;
  }
  else {
      $tuples[$suffix][$field] = $value;
  }
}

$json = json_encode($tuples);

我不明白如何计算parziale,但你明白了