fork(1) download
  1. <?php
  2.  
  3.  
  4. $total = 7;
  5.  
  6. $syllable = 4;
  7.  
  8. $numberOfWinners = $syllable-1;
  9.  
  10. $totalArray = [];
  11.  
  12. for ($i=1, $a=1; $i<=$total; $i++, $a++) {
  13. $totalArray [$a] = $i;
  14. }
  15.  
  16. function check ($totalArray, $i, $syllable) {
  17. for($i, $a=1; $a<=$syllable; $i++, $a++) {
  18. $end = $totalArray[array_key_last($totalArray)];
  19.  
  20. if (array_key_exists($i, $totalArray)&&$i!=$end) {
  21. $start = $totalArray[$i];
  22.  
  23. } else if (array_key_exists($i, $totalArray)&&$i==$end) {
  24.  
  25. $start = $totalArray[$i];
  26. $i = 0;
  27.  
  28. } else {
  29.  
  30. $a--;
  31. continue;
  32. }
  33. }
  34.  
  35. unset($totalArray[$start]);
  36.  
  37. if (array_key_exists($i, $totalArray)==false) {
  38. while ($i!=array_key_exists($i, $totalArray)) {
  39. $i++;
  40.  
  41. }
  42. }
  43. return [
  44. '0' => $totalArray,
  45. '1' => $totalArray[$i]
  46. ];
  47.  
  48. }
  49. $i = 1;
  50. for ($a=1; count($totalArray)!=$numberOfWinners; $a++) {
  51. $a = check ($totalArray, $i, $syllable);
  52. $totalArray = $a[0];
  53. $i = $a[1];
  54. }
  55.  
  56. echo "Победители: ";
  57. $result = implode(', ', $totalArray);
  58. echo $result;
Success #stdin #stdout 0.03s 25992KB
stdin
Standard input is empty
stdout
Победители: 2, 3, 7