Используя PHP, как я могу сделать счетчик, который превращает любой Int в 1 до 9999? - PullRequest
0 голосов
/ 10 ноября 2011

У меня есть внутренний счетчик, который отсчитывает от 0-999999999999.

Я бы хотел, чтобы это отображалось в виде числа от 0 до 9999, а затем снова при опрокидывании.

Это означает:

  • 0 отображается как 1
  • 1 отображается как 2
  • 9998 отображается как 9999
  • ...
  • 9999 отображается как 1
  • 10000 отображается как 2
  • ...
  • 19999 отображается как 1
  • 20000 отображается как 2

edit:

1 + $ число% 9999 было ответом (спасибо @Brad Christie).Моя таблица ожидаемых результатов неверна.(Спасибо @Tevo D)

Ответы [ 3 ]

4 голосов
/ 10 ноября 2011
$x = 9280293;
$baseNineNineNineNine = $x % 9999;

Используйте MOD, это даст вам остаток после 9999 (например, любое число, разделенное на 9999, может идти в N раз, с остатком Y (вы получите Y в качестве значения)

Для номеров, которые вы ищете, вы можете захотеть +1 любое значение, которое вы получите после MOD (%), или использовать 10000

См. Также Оператор модуля

3 голосов
/ 10 ноября 2011

Возьмите напоминание с 10000, которое гарантирует результат в диапазоне от 0 до 9999 и переворачивает

$result = $int % 10000;
2 голосов
/ 10 ноября 2011

Ваша таблица значений не соответствует тому, что вы просили. В этом примере вы используете 9999 значений результатов (1-9999) для 10000 входных значений. В тексте вы говорите 10000 выходных значений (0-9999).

Вот то, что я думаю, вы действительно просите. Этот алгоритм выдаст 1-9999, а затем снова переключится на 1.

Другими словами, это решение будет предоставлять четырехзначное ненулевое значение:

$result = $int % 9999 + 1;

Вывод НЕ будет соответствовать вашему примеру, так как в вашем примере он перебирает каждые 10000 значений, а не 9999. Вот вывод:

input   output
0       1
1       2
....      ....
9997      9998
9998      9999
9999      1       <--- 9999 * 1
10000     2
....      ....
19996     9998
19997     9999
19998     1       <--- 9999 * 2
19999     2
....      ....
19995     9998
19996     9999
19997     1       <--- 9999 * 3
19998     2
....      ....
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...