分发一个没有余数的数字

时间:2015-03-17 03:19:37

标签: php arrays division

我想将物品分发到特定的碎片而不切割多余的碎片, 例如:

$persons = 7;
$rooms = 2;

for($i = 0; $i < $rooms; $i++)
{
      //distribute the persons per room
}

//the endpoint should be
$the_room[0] = 4 //instead of 3.5
$the_room[1] = 3 //instead of 3.5

1 个答案:

答案 0 :(得分:2)

首先平均分配片段然后随机化其余片段的方法怎么样?

$persons = 7;
$rooms = 2;
$the_room = array();

for($i = 0; $i < $rooms; $i++)
{
  $the_room[$i] = floor($persons / $rooms);
}

// Random Distribution
while( $persons - array_sum($the_room) > 0)
{
  $the_room[array_rand($the_room)]++;
}

// Sequential Distribution
// $index = 0;
// while( $persons - array_sum($the_room) > 0)
// {
//   $the_room[$index++]++;
// }

print_r($the_room);