fork download
  1. <?php
  2. $array = [1,1,1,2,2,3,3,1,1,2,2,3];
  3. $result = [];
  4. $carry = [];
  5. foreach ($array as $value) {
  6. if ($carry && key($carry) === $value) {
  7. ++$carry[$value];
  8. } else {
  9. unset($carry);
  10. $carry = [$value => 1];
  11. $result[] =& $carry;
  12. }
  13. }
  14. unset($carry);
  15. print_r($result);
Success #stdin #stdout 0.03s 24228KB
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
        )

)