我有一个MySQL表,其中包含一组附有姓名的人。它们是1,2,3或4.我需要创建组,其中每个组中的成员均匀分布。换句话说,我不希望一组中的所有4个,或者另一组中的所有3个。我希望它能够均匀分配。 这就是我到目前为止所拥有的。它回应了人们并按他们的水平对他们进行分组,但我不确定如何使他们的群体平等地分配他们的水平。 我有更多的代码,即使我因缺乏经验而生气,但我希望有人可以告诉我如何清理代码。它的工作方式我想要它,但感觉很难看。任何帮助将不胜感激。
<?php
include_once 'connect.php';
$level1 = array();
$level2 = array();
$level3 = array();
$level4 = array();
$sql1 = "SELECT * FROM table WHERE level = 1";
$stmt = $handler->prepare($sql1);
$stmt->execute();
$row = $stmt->fetchAll();
foreach($row as $rows)
{
$level1[] = $rows['name'];
}
$sql2 = "SELECT * FROM table WHERE level = 2";
$stmt = $handler->prepare($sql2);
$stmt->execute();
$row = $stmt->fetchAll();
foreach($row as $rows)
{
$level2[] = $rows['name'];
}
$sql3 = "SELECT * FROM table WHERE level = 3";
$stmt = $handler->prepare($sql3);
$stmt->execute();
$row = $stmt->fetchAll();
foreach($row as $rows)
{
$level3[] = $rows['name'];
}
$sql4 = "SELECT * FROM table WHERE level = 4";
$stmt = $handler->prepare($sql4);
$stmt->execute();
$row = $stmt->fetchAll();
foreach($row as $rows)
{
$level4[] = $rows['name'];
}
$sql5 = "SELECT * FROM table";
$stmt = $handler->prepare($sql5);
$stmt->execute();
$row = $stmt->fetchAll();
$result = count($row);
for($i=0; $i<=$result; $i++)
{
echo $level1[$i];
echo"<br>";
echo $level2[$i];
echo"<br>";
echo $level3[$i];
echo"<br>";
echo $level4[$i];
echo"<br>";
}
?>
答案 0 :(得分:0)
听起来像一个简单的循环式分布,它需要1到4的循环范围,使用它作为数组的索引,累积每个组的计数。如果我理解了你的要求,这可能会解决你描述的问题。
如果您仍处于理论方面,请绘制您的意思图。代码示例意味着答案可以解决您的问题,而不是理论上解决它。