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

从给定的字母数组中增加字符串或使用 PHP 从增量中排除特定字母

从给定的字母数组中增加字符串或使用 PHP 从增量中排除特定字母

PHP
暮色呼如 2023-04-21 13:13:09
我有一个允许的字母列表$allowedLetters = array('B','C','D','F','G','H','J','K','L','M','N','P','R','S','T','V','W','X','Y','Z');从那个数组我想做字符串增量以获得以下模式:BBB, BBC, BBD ... until ZZZ我知道我可以像这样简单地进行字符串递增:$letters = array();$letter = 'BBB';while ($letter !== 'ZZZ') {        $letters[] = $letter++;    }print_r($letters);但它不会匹配我的允许字母列表,我只是找不到一种方法如何使用允许列表进行增量或只是排除我不想要的字母,例如:A,E,I,O,Q,U还有什么比这更简单的呢?如果有人可以提供帮助,我将不胜感激。
查看完整描述

1 回答

?
守着一只汪

TA贡献1872条经验 获得超3个赞

我提出了一个解决方案,从您涉及strcspn()功能的代码开始:

$letters = array();

$letter = 'BBB';

while ($letter !== 'ZZZ') {

    $letter++;  

    if(strcspn($letter, "AEIOU") == 3 )       

        $letters[] = $letter;    

}


print_r($letters);

上述函数返回参数中列出的字符第一次出现的索引needle。[0-2]因此,在我们的例子中,如果存在任何字符,它将返回范围内的值。needle根据手册页,没有找到列表中指定的任何一个字符,返回原始字符串的长度(在我们的场景中它总是等于 3)。


这意味着确保它返回 3 我们只接受不包含禁止字符的字符串"AEIOU",并将它们附加到我们的输出数组。


查看完整回答
反对 回复 2023-04-21
  • 1 回答
  • 0 关注
  • 113 浏览

添加回答

举报

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