2011-03-19 72 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