如何将带有方括号的字符串转换为数组?

1 php arrays multidimensional-array advanced-custom-fields

我是从字段的名称属性中获得的

name="field[a][2][b][0][c][1][field_name]"
Run Code Online (Sandbox Code Playgroud)

序列化表格后,我得到了:

array('field[a][2][b][0][c][1][field_name]'=>'value')
Run Code Online (Sandbox Code Playgroud)

我需要将其转换为以下数组:

$field = array (
         'a' => array (
                [2] => array (
                       'b' => array (
                              [0] => array (
                                     'c' => array (
                                            [1] => array (
                                                 'field_name'=>'value'
                                            )
                                      )
                               )
                        )
                  )
           )
    );
Run Code Online (Sandbox Code Playgroud)

我需要某种foreach函数或php可以将该字符串识别为数组吗?

Rei*_*Rei 5

如果要嵌套结果,请使用parse_str()

$text = "field[a][2][b][0][c][1][field_name]=value";
parse_str($text, $result);
print_r($result);
Run Code Online (Sandbox Code Playgroud)

输出:

Array
(
    [field] => Array
        (
            [a] => Array
                (
                    [2] => Array
                        (
                            [b] => Array
                                (
                                    [0] => Array
                                        (
                                            [c] => Array
                                                (
                                                    [1] => Array
                                                        (
                                                            [field_name] => value
                                                        )

                                                )

                                        )

                                )

                        )

                )

        )

)
Run Code Online (Sandbox Code Playgroud)

参见https://3v4l.org/7nmFT

  • 在我看来,这确实是用例“ parse_str”的预期用途。该字符串源自html文本输入属性`name`。 (2认同)