带有分隔符到多维数组的字符串

时间:2014-06-19 13:37:18

标签: php arrays

我有一个字符串:

something.else.is.going.on

我需要做的是生成一个看起来像这样的多维数组

[
     something => [ else => [ is => [ going => [ on => 'HERE I WANT TO PUT A VALUE FROM FUNCTION PARAMETER' ] ] ] ]
]

我如何实现这一目标?

2 个答案:

答案 0 :(得分:1)

$key = 'something.else.is.going.on';
$separator = '.';
$value = true;

function nestedArray(array $key, $value) {
    if (empty($key))
        return $value;
    return array(array_shift($key) => nestedArray($key, $value));
}

$result = nestedArray(explode($separator, $key), $value);
var_dump($result);

答案 1 :(得分:0)

试试这个:

<?php 
    $string='something.else.is.going.on';
    $exploded_string = explode('.', $string);
    $x = count($exploded_string) - 1;
    $temp = array();
    for($i = $x; $i >= 0; $i--)
    {
        $temp = array($exploded_string[$i] => $temp);
    }
    var_dump($temp); ?>

给你

Array
(
    [something] => Array
        (
            [else] => Array
                (
                    [is] => Array
                        (
                            [going] => Array
                                (
                                    [on] => Array
                                        (
                                        )

                                )

                        )

                )

        )

)

感谢How to create a nested array out of an array in PHP寻求帮助