ron*_*tal 1 php arrays multidimensional-array
我在这个庞大的扁平单个数组中有一组键我想基本上将该数组扩展为由键组织的多维数组 - 这是一个例子:
'invoice/products/data/item1'
'invoice/products/data/item2'
'invoice/products/data/item2'
Run Code Online (Sandbox Code Playgroud)
=>
'invoice'=>'products'=>array('item1','item2','item3')
Run Code Online (Sandbox Code Playgroud)
我怎么能这样做 - 上面的字符串的长度是可变的...
谢谢!
$src = array(
'invoice/products/data/item1',
'invoice/products/data/item2',
'invoice/products/data/item2',
'foo/bar/baz',
'aaa/bbb'
);
function rsplit(&$v, $w)
{
list($first, $tail) = explode('/', $w, 2);
if(empty($tail))
{
$v[] = $first;
return $v;
}
$v[$first] = rsplit($v[$first], $tail);
return $v;
}
$result = array_reduce($src, "rsplit");
print_r($result);
Run Code Online (Sandbox Code Playgroud)
输出是:
Array (
[invoice] => Array
(
[products] => Array
(
[data] => Array
(
[0] => item1
[1] => item2
[2] => item2
)
)
)
[foo] => Array
(
[bar] => Array
(
[0] => baz
)
)
[aaa] => Array
(
[0] => bbb
)
)
Run Code Online (Sandbox Code Playgroud)