将字符串分解为多级对象(或数组)
Break String in to multilevel object (or array)
我有这样一个字符串:-
dev/clients/518/aaa/1915/bbb/1/file.pdf
我的目标是能够通过多级对象
引用file.pdf
dev->clients->518->aaa->1915->bbb->1
或数组
[dev][clients][518][aaa][1915][bbb][1]
这是来自 AWS S3 的密钥,我试图从中创建一个可导航的结构。我可以分解字符串得到
Array
(
[0] => dev
[1] => clients
[2] => 518
[3] => aaa
[4] => 1915
[5] => bbb
[6] => 1
[7] =>file.pdf
)
不确定如何从这里前进。这可能会更好地显示我想要的东西:-
Array (
[dev] => Array (
[clients] => Array (
[518] => Array (
[aaa] => Array (
[1915] => Array (
[bbb] => Array (
[1] => file.pdf
)
)
)
)
)
)
)
你可以用简单的方法做到这一点 for-loop
:
$arr = explode("/", "dev/clients/518/aaa/1915/bbb/1/file.pdf");
$arr = array_reverse($arr); //reverse the order to start from the lowest level
$res = array_shift($arr); //init the result as the last element ("file")
foreach($arr as $e) {
$tmp[$e] = $res;
$res = $tmp;
unset($tmp[$e]); //so $tmp will not contain dragging element
}
您希望输出在 $res
我有这样一个字符串:-
dev/clients/518/aaa/1915/bbb/1/file.pdf
我的目标是能够通过多级对象
引用file.pdf
dev->clients->518->aaa->1915->bbb->1
或数组
[dev][clients][518][aaa][1915][bbb][1]
这是来自 AWS S3 的密钥,我试图从中创建一个可导航的结构。我可以分解字符串得到
Array
(
[0] => dev
[1] => clients
[2] => 518
[3] => aaa
[4] => 1915
[5] => bbb
[6] => 1
[7] =>file.pdf
)
不确定如何从这里前进。这可能会更好地显示我想要的东西:-
Array (
[dev] => Array (
[clients] => Array (
[518] => Array (
[aaa] => Array (
[1915] => Array (
[bbb] => Array (
[1] => file.pdf
)
)
)
)
)
)
)
你可以用简单的方法做到这一点 for-loop
:
$arr = explode("/", "dev/clients/518/aaa/1915/bbb/1/file.pdf");
$arr = array_reverse($arr); //reverse the order to start from the lowest level
$res = array_shift($arr); //init the result as the last element ("file")
foreach($arr as $e) {
$tmp[$e] = $res;
$res = $tmp;
unset($tmp[$e]); //so $tmp will not contain dragging element
}
您希望输出在 $res