<?php

$array = [1,1,1,2,2,3,3,1,1,2,2,3];

$result = [];
$carry = [array_shift($array) => 1];

foreach ($array as $value) {
    if (isset($carry[$value])) {
        ++$carry[$value];
    } else {
        $result[] = $carry;
        $carry = [$value => 1];
    }
}
$result[] = $carry;
print_r($result);