PHP: математическая задача - PullRequest
0 голосов
/ 19 марта 2011

У меня есть вопрос в PHP, который я не могу решить.

У меня есть переменная со значением 5000. Мне нужно разделить эту переменную со значением 300. Например:

$var = ceil (5000 / 300);

Это приведет к 17. Мне нужно сгенерировать группы по 300 и найти остальные.Например:

$var1 = 300;
$var2 = 300;
.
.
.
$varX = 200; //rest

Число 5000 и 300 являются динамическими, поэтому я не могу сделать это вручную.

Кто-нибудь знает, как я мог это сделать?

Ответы [ 6 ]

1 голос
/ 19 марта 2011

Просто используйте оператор модуля , чтобы получить остаток от операции деления:

$x = 5000;
$y = 300;
$varX = $x % $y; // $varX = 200
0 голосов
/ 13 июня 2012

Если вы настаиваете на использовании цикла, это можно сделать следующим образом:

$x=5000;
$y=300;
while($x % $y !=0) {
  // do anything you need here...
  $x-=$y;
}
// $x finally contains the rest
0 голосов
/ 19 марта 2011

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

$varX = 5000;
$varY = 300;
$varQuotient = (int)($varX / $varY);

Заполнить $varQuotient элементов массива $varY.Это даст вам 300 групп. Последний элемент массива будет $varX % $varY (если только он не равен 0, в этом случае он опускается, поскольку $varY делит $varX).Это то, что вы искали?

0 голосов
/ 19 марта 2011

вы ищете что-то вроде этого (цикл 5000x, затем введите в дБ, когда цикл достигнет 300)

<?php 

for($i=0;$i<5000;$i++){
    $x = $i;
    $y = 300;
    $varX = $x % $y;
    if($varX==299){echo 'Put In db<br>';}

}

?>
0 голосов
/ 19 марта 2011

Вы, вероятно, ищете оператора по модулю, который часто, но не всегда %:

python :

>>> 1500 / 200 ; 1500 % 200
7
100

ruby ​​:

irb(main):002:0> puts 1500 / 200 ; puts 1500 % 200
7
100

erlang :

1> 1500 div 200.
7
2> 1500 rem 200.
100

php :

echo (5 % 3)."\n";  // prints 2
0 голосов
/ 19 марта 2011

Если вы хотите остаток, используйте оператор мод, %. Например. 5000% 300 = 200.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...