如何解决php:如何从 a 到 z、aa 到 zz、aA 到 aZ 等列表
我想从a迭代到z,A到Z,aa到zz,AA到ZZ,aA到zZ,Aa到Zz等等。 当然还有任何长度。
例如:
$length = 2;
$limit = str_repeat('z',$length);
for($i='a';$i<=$limit;$i++) {
if($i==str_repeat('a',$length+1)) break; // stop on 'aaa';
myCallback($i);
}
结果将是:
a
b
c
...
z
aa
ab
ac
...
zz
所以,我想创造一个完全像这样的东西,但有鞋面、小号和两者兼而有之。
解决方法
function generate($length = 1) {
$small = range('a','z');
$capital = range('A','Z');
if ($length <= 0) {
return [];
} elseif ($length == 1) {
return array_merge($small,$capital);
} else {
$result = [];
foreach (array_merge($small,$capital) as $letter) {
foreach (generate($length - 1) as $subLetter) {
$result[] = $letter . $subLetter;
}
}
return $result;
}
}
// Sample output
echo '<pre>' . print_r(generate(2),true) . '</pre>';
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。