加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 将一个字符串数组转换为多维数组,每个字符串都有点分隔值

发布时间:2020-12-13 17:15:31 所属栏目:PHP教程 来源:网络整理
导读:我有以下数组: Array( [0] = INBOX.Trash [1] = INBOX.Sent [2] = INBOX.Drafts [3] = INBOX.Test.sub folder [4] = INBOX.Test.sub folder.test 2) 如何将此数组转换为多维数组,如下所示: Array( [Inbox] = Array ( [Trash] = Array ( ) [Sent] = Array (
我有以下数组:

Array
(
    [0] => INBOX.Trash
    [1] => INBOX.Sent
    [2] => INBOX.Drafts
    [3] => INBOX.Test.sub folder
    [4] => INBOX.Test.sub folder.test 2
)

如何将此数组转换为多维数组,如下所示:

Array
(
    [Inbox] => Array
        (
            [Trash] => Array
                (
                )

            [Sent] => Array
                (
                )

            [Drafts] => Array
                (
                )

            [Test] => Array
                (
                    [sub folder] => Array
                        (
                            [test 2] => Array
                                (
                                )

                        )

                )

        )

)

解决方法

试试这个.

<?php
$test = Array
(
    0 => 'INBOX.Trash',1 => 'INBOX.Sent',2 => 'INBOX.Drafts',3 => 'INBOX.Test.sub folder',4 => 'INBOX.Test.sub folder.test 2',);

$output = array();
foreach($test as $element){
    assignArrayByPath($output,$element);   
}
//print_r($output);
debug($output);
function assignArrayByPath(&$arr,$path) {
    $keys = explode('.',$path);

    while ($key = array_shift($keys)) {
        $arr = &$arr[$key];
    }
}

function debug($arr){
    echo "<pre>";
    print_r($arr);
    echo "</pre>";
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读