我将以一些代码开始:
$characterset = 'abcdefg';
$character = 'a';
假设我有两个变量,characterset
和character
,我想得到下一个character
,所以我这样做了:
$characterset = 'abcdefg';
$character = 'a';
$ncharacter = $characterset[ strpos($characterset, $character) + 1 ];
这是有效的,但我使用的方法,必须这样做数千次per / second
,并使用XDebug + WebGrind
的结果是许多,许多调用strpos
,使函数走得比它应该走得慢得多,我意识到做math
在一种语言比做函数调用做数学更快,我已经尝试使用:
$character = 'a';
$ncharacter = chr( ord($character) + 1 );
这会起作用,但这给了我太多的字符,如果我想确保它没有+1
像:
或等字符,它会是一堆条件参数,使它变慢,所以我要找的是一种便宜的方式来character -> nextcharacter (determined from characterset)
不使用大量资源,基准从WebGrind
是首选。
谢谢:-)
使用
# The character set that we're using to iterate.
$CharacterSet = 'abcdefg';
$chr_array = str_split($CharacterSet);
foreach($chr_array as $Character){
//do whatever with character, everytime it will provide the next one when foreach loop continues
}
希望对大家有所帮助