首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP::获取数组中所有可用选项

PHP::获取数组中所有可用选项
EN

Stack Overflow用户
提问于 2017-03-15 08:36:50
回答 2查看 58关注 0票数 0

我的大脑着火了:“()

我想从$vowels获得所有可用的选项,但不要在同一行中重复相同的字母。

代码语言:javascript
复制
<?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,但为了简单起见,让我们假设:

代码语言:javascript
复制
$row=2;
$column=2;

结果是:

声发射

EA

AI

[医]

AO

办公自动化

自动

UA

EA

声发射

EI

EO

OE

欧盟

UA

[医]

AI

IO

国际单位

用户界面

等等。谢谢你提前帮忙!:)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-15 09:38:17

我建议使用递归:

代码语言:javascript
复制
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,但我想这就是您要问的想法。

票数 1
EN

Stack Overflow用户

发布于 2017-03-15 08:41:13

代码语言:javascript
复制
<?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>';
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42804659

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档