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

问题描述 投票:0回答:1

我有允许的字母列表

$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

还有什么更简单?如果有人可以提供帮助,我将不胜感激。

php arrays string loops increment
1个回答
0
投票

我提出了涉及strcspn()功能的解决方案:

strcspn()

提到的函数返回$letters = array(); $letter = 'BBB'; while ($letter !== 'ZZZ') { $letter++; if(strcspn($letter, "AEIOU") == 3 ) $letters[] = $letter; } print_r($letters); 参数中列出的字符的首次出现的索引。因此,在我们的情况下,如果存在任何字符,它将返回[0-2]范围内的值。

这意味着确保它返回3,我们只接受不包含禁止字符“ AEIOU”的字符串。

© www.soinside.com 2019 - 2024. All rights reserved.