首页 > 解决方案 > 如何在php中创建字母生成线

问题描述

所以我正在尝试制作一个 md5 字典,我想通过最简单的方法,当然是用我想要的字母创建一个数组,然后设置一个 loooooop 并且每次我都会创建每个字母的 md5(回声$array[%SOMEVALUEHERE%]) 但问题是,当我想重复它们时,很容易做字母表的第一行 (a,b,c....) buuuuut (aa,ab,ac... ...)我似乎找不到不需要我编写 100000 行代码的方法,所以有人可以指导我正确的方法吗?

标签: php

解决方案


如果我理解正确,目标是生成一定长度的字符串,每个字母组合?

Ex:
a, b, c...
aa, ab, ac...
aaa, aab, aac...

如果是这种情况,您可以构建一个包含 26 个字母的数组并将它们传递给一个递归函数,该函数将字符串构建到您正在寻找的长度。这是一个使用 abc 且长度最多为 4 的快速示例。它只是回显字符串,但您可以对它们做任何您喜欢的事情,而不是回显:

$arr = array('a', 'b', 'c');

buildString('', $arr, 1);
buildString('', $arr, 2);
buildString('', $arr, 3);
buildString('', $arr, 4);

function buildString($currString, $arr, $targetLength)
{
    foreach($arr as $letter)
    {
        $tmpString = $currString . $letter;

        if(strlen($tmpString) != $targetLength)
        {
            buildString($tmpString, $arr, $targetLength);
        }
        else
        {
            echo $tmpString . PHP_EOL;
        }
    }
}

为了您的目的,可能需要对此进行一些调整,但这只是一个示例,可以让您大致了解如何处理它。


推荐阅读