Alex Alex - 5 months ago 11
PHP Question

How to split a string into an array, but rather chain new elements instead of adding an element per delimiter in php?

I know how to do that with a loop obviously, but I wonder if there was a one line for turning this:

a/b/c/d


into

[a, a/b, a/b/c, a/b/c/d]

Answer

Not a one-liner exactly, but you can do this with array_reduce:

$arr = array_reduce(explode('/', 'a/b/c/d'), function($accumulator, $char) {
    $prev = empty($accumulator) ? '' : $accumulator[count($accumulator)-1];
    $accumulator[] = $prev.$char;
    return $accumulator;
}, []);
Comments