fork download
  1. <?php
  2. $total = 30;
  3. $skip = 5;
  4.  
  5. $res = calc1($total, $skip);
  6. print_r($res);
  7.  
  8. $res = calc2($total, $skip);
  9. print_r($res);
  10.  
  11.  
  12. function calc1($total, $skip) {
  13. $n = 0;
  14. $arr = range(1, $total);
  15.  
  16. while (count($arr) >= $skip) {
  17. foreach ($arr as $i => $el) {
  18. $n++;
  19. if ($n % $skip == 0) unset($arr[$i]);
  20. }
  21. }
  22.  
  23. return $arr;
  24. }
  25.  
  26. function calc2($total, $skip) {
  27. $n = 0;
  28. $arr = range(1, $total);
  29.  
  30. while (count($arr) >= $skip) {
  31. $n++;
  32. $val = array_shift($arr);
  33. if ($n % $skip) $arr[] = $val;
  34. }
  35.  
  36. sort($arr);
  37. return $arr;
  38. }
Success #stdin #stdout 0.02s 24908KB
stdin
Standard input is empty
stdout
Array
(
    [2] => 3
    [3] => 4
    [13] => 14
    [26] => 27
)
Array
(
    [0] => 3
    [1] => 4
    [2] => 14
    [3] => 27
)