0

我目前正在使用此代码生成数组的所有排列的列表,但是,它似乎是根据数组中使用的所有单词输出排列,例如,猫、狗、鱼给了我一个列表使用所有这三个词的排列。

我正在寻找什么,它更改下面的代码,以便它从可能包含 50 个左右单词的数组中生成 2和3 个单词排列的列表。

$arr = array('cat', 'dog', 'fish');
pc_permute($arr);

function pc_permute($items, $perms = array()) {
    if (empty($items)) { 
        echo join($perms) . "<br />";
    } else {
        for ($i = count($items) - 1; $i >= 0; --$i) {
             $newitems = $items;
             $newperms = $perms;
             list($foo) = array_splice($newitems, $i, 1);
             array_unshift($newperms, $foo);
             pc_permute($newitems, $newperms);
         }
    }
}

它目前输出...

猫狗鱼狗猫鱼鱼猫狗鱼狗猫猫鱼狗狗鱼猫

id 喜欢的是它只包含 3 个组合和 2 个组合......

猫狗猫鱼猫猫狗猫狗鱼狗狗鱼猫鱼狗鱼鱼

我将如何编辑上面的代码来实现这一点?

TIA 为您提供任何帮助,请在此处完全了解 PHP。

哦,作为旁注,我可以从使用数组单词更改为包含列出单词的 .txt 文件吗?如果是这样,加载此文件时会减少加载时间/服务器压力吗?

4

0 回答 0