PHP 将字符串转换为数组并按值分组

PHP Convert string to array and group by value

我一直在解决这个问题,给定一个像 WWLLWWWLWLLL 这样的字符串,我想将它分组到数组中,所以输出应该是

[
    0 => 'WW',
    1 => 'LL',
    2 => 'WWW',
    3 => 'L',
    4 => 'W',
    5 => 'LLL',
]

这是我已经开始的,我不知道下一步是什么

$str = 'WWLLWWWLWLLL';
str_split($str);

有点乱,但它完成了工作:

$str = 'WWLLWWWLWLLL';
$str = str_split($str);
foreach($str as $k => &$v) {
    $c = 1;
    while(isset($str[$k + $c]) && $str[$k + $c] == $v[0]) {
        $v .= $str[$k + $c];
        unset($str[$k + $c]);
        $c++;
    }
}