0

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

1 回答 1

0

您可以使用eval

形成 PHP 文档

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    
于 2012-10-03T18:44:54.457 回答