我想做的是:
$numbertodivise = 500;
500 / 3 = 166,66
我想将最公平的部分中的数字和最后部分中的数字加以区分,例如:
500 / 3 will give me :
$result1 = 166
$result2 = 166
$result3 = 168
我想要每个部门的代码如何才能做到这一点?
答案 0 :(得分:0)
我在这里提取了numbertodivise
的剩余部分,例如2如果模数为3,后来我划分并提取了除法的整数部分,这样我就可以将余数加到最后一个除数中,即在这种情况下为166。
<?php
$numbertodivise = 500;
$no = 3;
$intnumber = intval($numbertodivise / $no);
$rem = $numbertodivise % $no;
$array = [];
for($i=1;$i<=$no;$i++) {
if($i==$no) {
$array[] = $intnumber + $rem;
} else {
$array[] = $intnumber;
}
}
echo "<pre>";
print_r($array);
?>
输出将如下所示:
Array
(
[0] => 166
[1] => 166
[2] => 168
)
如上所述,为了制作变量,请使用:
<?php list($result1, $result2, $result3) = $array; ?>
答案 1 :(得分:0)
对于PHP 7,您可以使用此功能(检查&lt; 7的评论):
print_r(get_results(500, 3));
像这样使用:
Array
(
[0] => 166
[1] => 166
[2] => 168
)
输出将是:
<td style="border: 1px solid #ddd;background-color:#E5E4E2;">
<input type="text" name="qty_enter[]" id="qty_enter0" onkeyup="sum(0),itc_details(0),prevent_zero(0),advance_seeting1();" onkeypress="copyValue2(1)" onkeydown="return isNumberKey(event)" style="width: 65px;outline: none;border: none; background: transparent;"/>
</td>
答案 2 :(得分:0)
这是使用intval()
和模运算符%
执行此操作的方法:
<?php
$divide = 500;
$divideWith = 3;
for($i=0; $i < $divideWith; $i++)
{
echo "This is result".($i+1).": ";
// If $i is not on the last iteration
if($i != $divideWith-1)
// intval() returns integer part without rounding. It
// floors the value inside the parenthesese.
echo intval($divide/$divideWith).'<br/>';
else
// ($divide % $divideWidth) will return the remainder of
// division between $divide and $divideWidth.
// The remainder is always an int value.
echo (int($divide/$divideWith) + ($divide % $divideWith)).'<br/>';
}
?>
结果将是:
This is result1: 166
This is result2: 166
This is result3: 168
答案 3 :(得分:0)
不循环并使用基本PHP函数的方法。
我使用array_fill用计算的底限填充数组 然后我将余数添加到数组中的最后一项。
$number = 500;
$divise =3;
$arr = array_fill(0, $divise, floor($number/$divise));
$arr[count($arr)-1] += $number-(floor($number/$divise)*$divise);
// Above line can also be . $arr[count($arr)-1] += $number-$arr[0]*$divise;
Var_dump($arr);