Php 更改从序列化表单创建的数组中的键和值

Php 更改从序列化表单创建的数组中的键和值,php,html,arrays,ajax,Php,Html,Arrays,Ajax,我有一个序列化的表单,然后使用ajax发布到PHP脚本 当我发布表单时,我的数组如下所示: Array ( [0] => Array ( [name] => informatie[titel] [value] => ) [1] => Array ( [name] => informatie[inspectienummer]

我有一个序列化的表单,然后使用ajax发布到PHP脚本

当我发布表单时,我的数组如下所示:

Array
(
    [0] => Array
        (
            [name] => informatie[titel]
            [value] => 
        )

    [1] => Array
        (
            [name] => informatie[inspectienummer]
            [value] => 
        )

    [2] => Array
        (
            [name] => informatie[datum]
            [value] => 
        )

    [3] => Array
        (
            [name] => informatie[naaminspecteur]
            [value] => 
        )

    [4] => Array
        (
            [name] => informatie[locatie]
            [value] => 
        )

    [5] => Array
        (
            [name] => informatie[naamgeauditeerden]
            [value] => 
        )

    [6] => Array
        (
            [name] => questionlist[jjjj][hhhh]
            [value] => ok
        )

    [7] => Array
        (
            [name] => questionlist[jjjj][jjj]
            [value] => ok
        )

    [8] => Array
        (
            [name] => questionlist[Testt][test]
            [value] => fout
        )

)
Array
(
    [information] => Array
        (
            [titel] => inserted value
            [inspectienummer] => inserted value
            [datum] => inserted value
            [naaminspecteur] => inserted value
            [locatie] => inserted value
            [naamgeauditeerden] => inserted value
        )

    [questionlist] => Array
        (
            [jjjj] => Array
                    (
                        [hhhh] => ok
                        [jjj] => fout
                    )
            [testt] => Array
                    (
                        [test] => n.v.t.
                    )
        )
)
数组自动包含键
名称
。但我需要这样一个数组:

Array
(
    [0] => Array
        (
            [name] => informatie[titel]
            [value] => 
        )

    [1] => Array
        (
            [name] => informatie[inspectienummer]
            [value] => 
        )

    [2] => Array
        (
            [name] => informatie[datum]
            [value] => 
        )

    [3] => Array
        (
            [name] => informatie[naaminspecteur]
            [value] => 
        )

    [4] => Array
        (
            [name] => informatie[locatie]
            [value] => 
        )

    [5] => Array
        (
            [name] => informatie[naamgeauditeerden]
            [value] => 
        )

    [6] => Array
        (
            [name] => questionlist[jjjj][hhhh]
            [value] => ok
        )

    [7] => Array
        (
            [name] => questionlist[jjjj][jjj]
            [value] => ok
        )

    [8] => Array
        (
            [name] => questionlist[Testt][test]
            [value] => fout
        )

)
Array
(
    [information] => Array
        (
            [titel] => inserted value
            [inspectienummer] => inserted value
            [datum] => inserted value
            [naaminspecteur] => inserted value
            [locatie] => inserted value
            [naamgeauditeerden] => inserted value
        )

    [questionlist] => Array
        (
            [jjjj] => Array
                    (
                        [hhhh] => ok
                        [jjj] => fout
                    )
            [testt] => Array
                    (
                        [test] => n.v.t.
                    )
        )
)
我怎样才能做到这一点?这就是我试图做的:

$wpi = $_POST['wpi'];


$newarray = array();
foreach($wpi as $wpikey => $wpivalue){
  $newarray[$wpikey] = $wpivalue;
}

echo '<pre>';
print_r($newarray);
echo '</pre>';
$wpi=$\u POST['wpi'];
$newarray=array();
foreach($wpi作为$wpikey=>$wpivalue){
$newarray[$wpikey]=$wpivalue;
}
回声';
打印(新数组);
回声';
但它给了我同样的结果

我的HTML如果这澄清了什么:

//container for new array
$arr2 = [];

//loop over the outer parts of the array...
foreach($wpi as $sub_arr) {

    //...parse the namespace parts in the name field
    preg_match_all('/^[^\[]+|(?<=\[)[^\]]+(?=\])/', $sub_arr['name'], $parts);

    //...recursively add the values to a new, multi-dimensionsl array
    $append_to = &$arr2;
    foreach($parts[0] as $i => $part) {
        if (!array_key_exists($part, $append_to))
            $append_to[$part] = $i < count($parts[0]) - 1 ? [] : $sub_arr['value'];
        $append_to = &$append_to[$part];
    }
}

Werkplekinspectie模板:

jjj

滴度:

检查汇总:

检查数据:

Naam检查员:

位置/归属

Naam/Namen geauditeerden

jjjj

hhh

好啊 福特 N.v.t

jjj

好啊 福特 N.v.t 测试

测试

好啊 福特 N.v.t
试试这个

//新数组的容器
$arr2=[];
//在阵列的外部部分上循环。。。
foreach($wpi作为$sub_arr){
//…分析名称字段中的命名空间部分
预匹配全部('/^[^\[]+|)(?