所有
当表单发布时,我会得到一些复选框值,如下所示:
[chk0] => Array (
[1] => on
[57] => on
[83] => on
)
[chk1] => Array (
[69] => on
[71] => on
)
[chk1001] => on
[chk1005] => on
[chk1008] => on
使用PHP,如何使用上述变量构造一个包含2个数组的JSON请求?所有复选框都以“chk”为前缀。如果复选框是一个数组并且具有值,则应生成第一个JSON请求。对于所有不是数组的那些,它应该生成第二个。
//JSON Request 1
"data1":
[
{
"checkboxval": true,
"id": 1
},
{
"checkboxval": true,
"id": 57
},
{
"checkboxval": true,
"id": 83
},
{
"checkboxval": true,
"id": 69
},
{
"checkboxval": true,
"id": 71
}
]
//JSON Request 2:
"data2":
[
{
"checkboxval": true,
"id": 1001
},
{
"checkboxval": true,
"id": 1005
},
{
"checkboxval": true,
"id": 1008
}
]
答案 0 :(得分:5)
$data = array(
"data1" => array(),
"data2" => array(),
);
foreach($_POST as $key => $value)
{
if(preg_match('/^chk/',$key))
{
if(is_array($value))
{
foreach($value as $id => $on)
$data["data1"][] = array("checkboxval"=>true,"id"=>$id);
}
else
$data["data2"][] = array("checkboxval"=>true,"id"=>str_replace("chk","",$key));
}
}
$json = json_encode($data);