将字符串转换为php数组,在表单上将jquery序列化

时间:2012-10-03 18:33:55

标签: php jquery

我有一个表单,并使用以下方法将数据发送到后端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"
  }

1 个答案:

答案 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