1. 程式人生 > >把字串轉換成多維陣列

把字串轉換成多維陣列

把以下程式碼轉換成多維陣列

$ret = [
'version'=>1,
'app.sys.auth.user'=>1,
'app.sys.auth.admin'=>'admin',
'app.menu.article'=>'article',
];

轉換多維陣列後:

Array
(
    [version] => 1
    [app] => Array
        (
            [sys] => Array
                (
                    [auth] => Array
( [user] => 1 [admin] => admin ) ) [menu] => Array ( [article] => article ) ) )

實現程式碼:

$strings
= [ 'version'=>1, 'app.sys.auth.user'=>1, 'app.sys.auth.admin'=>'admin', 'app.menu.article'=>'article', ]; function format($string,$val) { $arr = explode('.', $string); $result = null; // 彈出最後一個元素 for($i = count($arr) - 1; $i >= 0; $i--) { if($result === null) { $result
= array($arr[$i]=>$val); } else { $result = array($arr[$i]=>$result); } } return $result; } $result = array(); foreach($strings as $key=>$val) { $result = array_merge_recursive($result, format($key,$val)); }