function str_tree($arr, $i = 0)
{
$res = array();
if( isset($arr[$i]) ){
$res[] = $arr[$i++];
$res['sub'] = str_tree($arr, $i);
}
return $res;
}
function str_tree($arr, $i = 0)
{
return isset($arr[$i]) ? array($arr[$i++], 'sub' => str_tree($arr, $i)) : NULL;
}
$data = array('str1', 'str2', 'str3', 'str4', 'str5');
$c=count($data)-1;
$a='';
for($i=$c;$i>=0;$i--)
{
if($i==$c)
$a=array($data[$i]);
else
$a=array($data[$i],'sub'=>$a);
}
print_r($a);
$my = array_reduce(array_reverse($data), function($result, $item) {
return array($item, 'sub' => $result);
}, array());
sub
, но если это и правда надо, то выделяем его специально:$my = array_reduce(array_reverse(array_slice($data, 0, -1)), function($result, $item) {
return array($item, 'sub' => $result);
}, array_slice($data, -1));