Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将html输入数组字符串转换为php数组?_Php_Parsing_For Loop_Input - Fatal编程技术网

将html输入数组字符串转换为php数组?

将html输入数组字符串转换为php数组?,php,parsing,for-loop,input,Php,Parsing,For Loop,Input,在PHP中,是否有方法或循环从大小不同的字符串构建数组 例如,我想转换 $str1 = "page[1][name]"; $str2 = "content[1][language][2][name]"; str1的预期输出: $page = array 1: name str2的预期产出: $content = array 1: language 2: name 但我需要它是构建数组的同一

在PHP中,是否有方法或循环从大小不同的字符串构建数组

例如,我想转换

$str1 = "page[1][name]";
$str2 = "content[1][language][2][name]";
str1的预期输出:

$page = array
    1:
       name
str2的预期产出:

$content = array
    1:
       language
             2:
                name
但我需要它是构建数组的同一个函数,而不管有多少[]维

我是这样想的:

$tmp = explode("[", $str1);
$arr = (array)$tmp[0];
for ($i=0; $i<count($tmp)-1; $i++) {
    $arr[$i] = array();
        .....
        .....
}
$tmp=explode(“[”,$str1);
$arr=(数组)$tmp[0];

对于($i=0;$i),您的输入看起来很像一个查询字符串,如果是这样,您可以使用

例如:

$str1 = "page[1][name]";
$str2 = "content[1][language][2][name]";

parse_str($str1, $v);
print_r($v);

parse_str($str2, $v);
print_r($v);
输出是您期望的结果:

Array
(
    [page] => Array
        (
            [1] => Array
                (
                    [name] =>
                )
        )
)
Array
(
    [content] => Array
        (
            [1] => Array
                (
                    [language] => Array
                        (
                            [2] => Array
                                (
                                    [name] =>
                                )
                        )
                )
        )
)

您的输入看起来很像一个查询字符串,如果是这样,您可以使用

例如:

$str1 = "page[1][name]";
$str2 = "content[1][language][2][name]";

parse_str($str1, $v);
print_r($v);

parse_str($str2, $v);
print_r($v);
输出是您期望的结果:

Array
(
    [page] => Array
        (
            [1] => Array
                (
                    [name] =>
                )
        )
)
Array
(
    [content] => Array
        (
            [1] => Array
                (
                    [language] => Array
                        (
                            [2] => Array
                                (
                                    [name] =>
                                )
                        )
                )
        )
)