pc_permutate 输出问题 - 基于数组字减少输出?

问题描述

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

我在寻找什么,它更改下面的代码,以便从可能包含 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 文件吗?如果是这样,加载此文件时会减少加载时间/服务器压力吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)