如何将字符串拆分为数组,而是链接新元素,而不是在 php 中为每个分隔符添加一个元素



我显然知道如何用循环来做到这一点,但我想知道是否有一行来转动它:

a/b/c/d

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

不完全是单行代码,但您可以使用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;
}, []);

闭包中有一个分号,所以我想它在技术上是一个两行

echo json_encode(array_map(function($val,&$accumulator){return $accumulator=$accumulator.$val; },explode('/','a/b/c/d'),array()));

结果是:

["a","ab","abc","abcd"]

最新更新