PHP随机分组的实现

业务需求:班级学员随机分成N组

 代码示例

function randomGroups($students, $groupSize) {
  shuffle($students); // 将学生名单随机排序
  $numGroups = ceil(count($students) / $groupSize); // 计算组数
  $groups = array(); // 存储分组结果的数组
  
  for ($i = 0; $i < $numGroups; $i++) {
    $groups[$i] = array_slice($students, $i * $groupSize, $groupSize);
  }
  
  return $groups;
}

//使用示例
$students = array('Alice', 'Bob', 'Charlie', 'Dave', 'Eve', 'Frank', 'Grace', 'Heidi', 'Ivy', 'Jack');
$groupSize = 3;
$groups = randomGroups($students, $groupSize);

foreach ($groups as $group) {
  echo "Group: ";
  foreach ($group as $student) {
    echo $student . " ";
  }
  echo "<br>";
}

输出示例:

Group: Eve Charlie Ivy
Group: Frank Grace Alice
Group: Heidi Jack Dave
Group: Bob

 该函数将输入的学生名单随机排序,并将其分成指定大小的组。如果学生人数不能被组大小整除,则最后一组可能会比其他组小。输出结果是一个数组,其中每个元素都是一个学生名单的子数组,表示一个分组。在使用示例中,我们遍历分组结果并打印每个分组的学生名单

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值