将数据平均分配到组中

时间:2015-05-29 12:45:36

标签: php mysql

我有一个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>";

}

?>

1 个答案:

答案 0 :(得分:0)

听起来像一个简单的循环式分布,它需要1到4的循环范围,使用它作为数组的索引,累积每个组的计数。如果我理解了你的要求,这可能会解决你描述的问题。

如果您仍处于理论方面,请绘制您的意思图。代码示例意味着答案可以解决您的问题,而不是理论上解决它。