我的大脑着火了:“()
我想从$vowels获得所有可用的选项,但不要在同一行中重复相同的字母。
<?php
$vowels=array("A","E","I","O","U");
$row=3;
$column=3;
echo '<pre>';
do{
foreach ($vowels as &$value)
{
//Magic Goes Here :P
}
$row--;
}while($row<>0);
echo '</pre>';因此(例如)由于这里有5个选项("A“、"E”、"I“、"O”、"U"),但行限制为3,单行中的最大选项/S为3,但为了简单起见,让我们假设:
$row=2;
$column=2;结果是:
声发射
EA
AI
[医]
AO
办公自动化
自动
UA
EA
声发射
EI
即
EO
OE
欧盟
UA
[医]
AI
即
IO
国际单位
用户界面
等等。谢谢你提前帮忙!:)
发布于 2017-03-15 09:38:17
我建议使用递归:
function recurrency($vowels, $cols, $level, $used) {
$i = -1; // EDIT to make loop index increment in one place
foreach ($vowels as $value) {
$i++;
if (in_array($i, $used)) {
continue;
}
$newUsed = $used;
$newUsed[] = $i;
if ($level < $cols && count($vowels) > $level) {
recurrency($vowels, $cols, $level + 1, $newUsed);
} else {
foreach ($newUsed as $index) {
echo $vowels[$index];
}
echo "<br />\n";
}
if ($level == 1) {
echo "<hr />\n\n";
}
}
}
$vowels=array("A","E","I","O","U");
$row=3;
$column=3;
echo '<pre>';
recurrency($vowels, $column, 1, []);
echo '</pre>';这不是一个明确的解决方案,我也不知道如何使用变量$row,但我想这就是您要问的想法。
发布于 2017-03-15 08:41:13
<?php
$vowels=array("A","E","I","O","U");
echo '<pre>';
foreach ($vowels as $value)
{
foreach ($vowels as $value1){
if($value1 != $value)
echo $value.$value1.'<br>';
}
}
echo '</pre>';https://stackoverflow.com/questions/42804659
复制相似问题