<?php
$array = [1,1,1,2,2,3,3,1,1,2,2,3];
$result = [];
$carry = [];
foreach ($array as $value) {
if ($carry && key($carry) === $value) { ++$carry[$value];
} else {
$carry = [$value => 1];
$result[] =& $carry;
}
}
PD9waHAKJGFycmF5ID0gWzEsMSwxLDIsMiwzLDMsMSwxLDIsMiwzXTsKJHJlc3VsdCA9IFtdOwokY2FycnkgPSBbXTsKZm9yZWFjaCAoJGFycmF5IGFzICR2YWx1ZSkgewogICAgaWYgKCRjYXJyeSAmJiBrZXkoJGNhcnJ5KSA9PT0gJHZhbHVlKSB7CiAgICAgICAgKyskY2FycnlbJHZhbHVlXTsKICAgIH0gZWxzZSB7CiAgICAgICAgdW5zZXQoJGNhcnJ5KTsKICAgICAgICAkY2FycnkgPSBbJHZhbHVlID0+IDFdOwogICAgICAgICRyZXN1bHRbXSA9JiAkY2Fycnk7CiAgICB9Cn0KdW5zZXQoJGNhcnJ5KTsKcHJpbnRfcigkcmVzdWx0KTs=