直接上代码!
$CombinList[0][0] = 'a1';
$CombinList[0][1] = 'a2';
$CombinList[1][0] = 'b4';
$CombinList[1][1] = 'b5';
$CombinList[1][2] = 'b6';
$CombinList[2][0] = 'c7';
$CombinList[2][1] = 'c8';
function combin($CombinList){
$CombineCount = 1;
foreach($CombinList as $Key => $Value){
$CombineCount *= count($Value);
}
$RepeatTime = $CombineCount;
foreach($CombinList as $ClassNo => $StudentList){
$RepeatTime = $RepeatTime/count($StudentList);
$StartPosition = 1;
foreach($StudentList as $Student){
$TempStartPosition = $StartPosition;
$SpaceCount = $CombineCount/count($StudentList)/$RepeatTime;
for($J = 1; $J <= $SpaceCount; $J ++){
for($I = 0; $I < $RepeatTime; $I ++){
$Result[$TempStartPosition + $I][$ClassNo] = $Student;
}
$TempStartPosition += $RepeatTime * count($StudentList);
}
$StartPosition += $RepeatTime;
}
}
return $Result;
}
echo "<pre>";
$Result = combin($CombinList);
print_r($Result);
foreach($Result as $k=>$v){
echo(implode('-', $v));
echo($wrap);
}
echo "</pre>";
/*
结果是:
Array
(
[1] => Array
(
[0] => a1
[1] => b4
[2] => c7
)
[2] => Array
(
[0] => a1
[1] => b4
[2] => c8
)
[3] => Array
(
[0] => a1
[1] => b5
[2] => c7
)
[4] => Array
(
[0] => a1
[1] => b5
[2] => c8
)
[5] => Array
(
[0] => a1
[1] => b6
[2] => c7
)
[6] => Array
(
[0] => a1
[1] => b6
[2] => c8
)
[7] => Array
(
[0] => a2
[1] => b4
[2] => c7
)
[8] => Array
(
[0] => a2
[1] => b4
[2] => c8
)
[9] => Array
(
[0] => a2
[1] => b5
[2] => c7
)
[10] => Array
(
[0] => a2
[1] => b5
[2] => c8
)
[11] => Array
(
[0] => a2
[1] => b6
[2] => c7
)
[12] => Array
(
[0] => a2
[1] => b6
[2] => c8
)
)
a1-b4-c7
a1-b4-c8
a1-b5-c7
a1-b5-c8
a1-b6-c7
a1-b6-c8
a2-b4-c7
a2-b4-c8
a2-b5-c7
a2-b5-c8
a2-b6-c7
a2-b6-c8
*/
One Comment
多谢,很好用。