首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP:获得嵌套数组的递归排列

PHP:获得嵌套数组的递归排列
EN

Stack Overflow用户
提问于 2019-02-13 13:12:19
回答 1查看 71关注 0票数 1

下面有嵌套数组结构。

代码语言:javascript
复制
$letters = array(
    $A = array(1,2),
    $B = array(3,4),
    $C = array(5,6)
);

我的目标是找出数字的所有可能排列,而字母必须保持A C的顺序。预期产出如下:

代码语言:javascript
复制
1-3-5
1-3-6
1-4-5
1-4-6
2-3-5
2-3-6
2-4-5
2-4-6

当然,这可以很容易地通过foreach实现:

代码语言:javascript
复制
foreach($A as $a){
    foreach($B as $b){
        foreach($C as $c){
            echo $a.$b.$c.'<br>';
        }
    }
}

但是,我希望通过不同数量的数组动态地工作。我已经意识到递归方法可以工作,但我不能把我的头脑围绕在它上面。有人能帮忙吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-13 14:01:05

只需将字符串传递到递归:

代码语言:javascript
复制
function work($str, $arr, $i)
{
    $last = ($i == count($arr) - 1);
    foreach ($arr[$i] as $c)
    {
        if ($last)
            echo $str . $c . "\n"; // print whole line
        else
            work($str . $c, $arr, $i + 1); // recurse to next column
    }
}

$letters = array(
    array(1,2),
    array(3,4),
    array(5,6)
);

work("", $letters, 0);

产生

135 136 145 146 235 236 245 246

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54671035

复制
相关文章

相似问题

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