我有一个表单,并使用以下方法将数据发送到后端php脚本:
var fields = $('#myform').serializeArray();
然后做一个帖子。我的一些输入被命名为数组,因此当数据发布时,我有一个如下所示的数组。如何将属性块转换回具有子数组的一个属性数组?
[1]=>
array(2) {
["name"]=>
string(20) "attribute[26][higher]"
["value"]=>
string(2) "21"
}
[2]=>
array(2) {
["name"]=>
string(20) "attribute[27][higher]"
["value"]=>
string(2) "20"
}
答案 0 :(得分:0)
您可以使用eval
FORM PHP DOC
eval()语言构造非常危险,因为它允许执行任意PHP代码。因此不鼓励使用它。如果您已经仔细验证除了使用此构造之外没有其他选择,请特别注意不要将任何用户提供的数据传递到其中,而不事先正确验证它。
$array = array(array("name" => "attribute[26][higher]","value" => "21"),array("name" => "attribute[27][higher]","value" => "20"));
foreach ( $array as $value ) {
$value["name"] = str_replace(array("[","]") , array("['","']"), $value["name"]);
eval("\$" . $value["name"] . " = array() ;" );
eval("\$" . $value["name"] . " = " . $value["value" ] . ";" );
}
var_dump($attribute[26]['higher'] , $attribute[27]['higher']);
输出
int 21
int 20