将字符串拆分成嵌套数组

5
我希望将这些字符串转换为一个组合嵌套数组:
array(
    'item1:item2:itemx',
    'item1:item2:itemy',
    'itemz'
)

To

array(
    'item1' => array(
        'item2' => array(
            'itemx' => array(),
            'itemy' => array(),
        )
    )
    'itemz' => array()
)

有没有用explode/foreach循环实现这个的方法?

像这篇帖子一样 [http://stackoverflow.com/questions/25510551/js-array-string-patch-name-to-arrayobject/25510794][1] ? - Rihard S
1
我更喜欢使用PHP编写解决方案,并使用数组而不是对象。 - Joe
你的字符串是在一个数组中还是真的命名为$string1,$string2等? - user1299518
@vlzvl 这些嵌套在一个更大的数组中,为了简单起见,我没有包含那部分。我会快速编辑一下... - Joe
1个回答

11

这个问题已经被回答了无数次... 在发新问题之前,请先使用搜索功能。

无论如何,这是一个解决方案:

$strings = array(
                 'item1:item2:itemx',
                 'item1:item2:itemy',
                 'itemz'
                );

$nested_array = array();

foreach($strings as $item) {
    $temp = &$nested_array;

    foreach(explode(':', $item) as $key) {
        $temp = &$temp[$key];
    }

    $temp = array();
}

var_dump($nested_array);

我确实在发布之前进行了搜索。无论如何,感谢您的回答。 - Joe
3
有类似的问题,但是这个问题正好符合我的需求,谢谢。 - TarranJones

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接