为了账号安全,请及时绑定邮箱和手机立即绑定

如何从未知数量的数组 PHP 构建数组[字符串]

如何从未知数量的数组 PHP 构建数组[字符串]

PHP
拉莫斯之舞 2023-08-19 14:14:28
我怀疑这是正确的方法。会发生什么?您可以向方法提供任意数量的数组...[    'jupiter',    'saturn',][    'is',    'was',][    'old',    'big',    'loved',]并创造...[  'jupiter is big',  'jupiter is loved',  'jupiter is old',  'jupiter was big',  'jupiter was loved',  'jupiter was old',  'saturn is big',  'saturn is loved',  'saturn is old',  'saturn was big',  'saturn was loved',  'saturn was old',]你应该怎么做?Stackoverflow 喜欢尝试,所以就开始吧 👋我的方法目前有两个重复函数(带有嵌套的 for 循环)和十几个其他 for 循环,这不是您想象的实现此目的的最快方法。我确实第一次尝试使用聪明的数学,但开始让自己感到困惑。如果您有更好的解决方案,请您也解释一下!
查看完整描述

1 回答

?
四季花海

TA贡献1811条经验 获得超5个赞

这是我的代码,只有一个递归函数。它还接受一个矩阵作为参数,而不是 N 个数组。


function generateList($data){

    if (count($data) == 0){

        return null;

    }


    $current = $data[0];

    $left = array_slice($data, 1);

    $permutations = generateList($left);


    $r = [];

    foreach($current as $item){

        if ($permutations){

            foreach ($permutations as $rest) {

                $r[] = $item . ' ' . $rest;

            }

        }

        else {

            $r[] = $item;

        }

    }

    return $r;

}


$data = [

    ['jupiter', 'saturn'],

    ['is', 'was'],

    ['old', 'big', 'loved']

];

var_dump(generateList($data));


查看完整回答
反对 回复 2023-08-19
  • 1 回答
  • 0 关注
  • 76 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信