fork(1) download
  1. <?php
  2.  
  3. $array = [1,1,1,2,2,3,3,1,1,2,2,3];
  4.  
  5. $result = [];
  6. $carry = [array_shift($array) => 1];
  7.  
  8. foreach ($array as $value) {
  9. if (isset($carry[$value])) {
  10. ++$carry[$value];
  11. } else {
  12. $result[] = $carry;
  13. $carry = [$value => 1];
  14. }
  15. }
  16. $result[] = $carry;
  17. print_r($result);
Success #stdin #stdout 0.01s 24144KB
stdin
Standard input is empty
stdout
Array
(
    [0] => Array
        (
            [1] => 3
        )

    [1] => Array
        (
            [2] => 2
        )

    [2] => Array
        (
            [3] => 2
        )

    [3] => Array
        (
            [1] => 2
        )

    [4] => Array
        (
            [2] => 2
        )

    [5] => Array
        (
            [3] => 1
        )

)