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
相关产品推荐
相关产品推荐

