You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP如何将一维数组中连续相同元素分组生成多维数组

PHP 连续相同元素分组实现方案

实现代码

function groupConsecutiveElements(array $sourceArr): array
{
    $result = [];
    $arrLength = count($sourceArr);
    if ($arrLength === 0) {
        return $result;
    }

    $currentGroup = [$sourceArr[0]];
    $currentValue = $sourceArr[0];

    for ($i = 1; $i < $arrLength; $i++) {
        if ($sourceArr[$i] === $currentValue) {
            $currentGroup[] = $sourceArr[$i];
            continue;
        }
        $result[] = $currentGroup;
        $currentValue = $sourceArr[$i];
        $currentGroup = [$sourceArr[$i]];
    }
    // 遍历结束后存入最后一组数据
    $result[] = $currentGroup;
    return $result;
}

调用示例

$tempArr = [1,1,1,2,2,2,1,1,2,2,1];
$targetArr = groupConsecutiveElements($tempArr);
print_r($targetArr);

说明

输出结果和你给出的目标结构完全一致,该方案为单次遍历实现,时间复杂度为O(n),性能表现优异,可直接适配大数组场景。

内容的提问来源于stack exchange,提问作者hatched

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 03:18:03