2011-03-19 113 views
0

我在PHP中遇到了一个我无法解决的问题。PHP:数学问题

我有具有值5000的可变我需要该变量分割带有的300的值。例如:

$var = ceil (5000/300); 

这将导致17.我需要生成的300组和发现其余的。例如:

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

数字5000和300是动态的,所以我不能手动完成。

有谁知道我该怎么做?

+0

1)目前尚不清楚你想做什么 - 试图解释更好。 2)这是功课吗? – Jon 2011-03-19 02:25:50

回答

1

只需使用modulus operator得到除法运算的余数:如果你想在剩余

$x = 5000; 
$y = 300; 
$varX = $x % $y; // $varX = 200 
+0

非常感谢! :)但如何生成与'300'循环? – Mike 2011-03-19 02:27:20

+0

@Mike:不太确定为什么你需要使用循环来找出余数。你能改进你的问题吗? – 2011-03-19 02:30:02

+0

它们是必须保存在数据库中的记录。当值为300时,它必须创建一条新记录。所以我需要生成循环。 – Mike 2011-03-19 02:32:52

0

,使用mod运算符,%。例如。 5000%300 = 200

0

你可能寻找模运算符,这是often but not always %

蟒蛇

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

红宝石

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

你找待办事项这样的事情(循环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

我不太确定你想要什么,但似乎你可能想要一个数组,加上使用mod运算符。

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

填充的阵列的元素$varQuotient$varY。这将使你得到你300人的团体。阵列的最后一个元素将是$varX % $varY(除非它是0,在这种情况下,因为$varY除以$varX而被省略)。这是你寻找的东西的类型吗?

-1

如果你坚持使用一个循环,这是可以做到这样:

$x=5000; 
$y=300; 
while($x % $y !=0) { 
    // do anything you need here... 
    $x-=$y; 
} 
// $x finally contains the rest