我先从下面的代码开始:
$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。
谢谢:-)
发布于 2016-11-10 10:06:52
用这个:
# 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
}我希望它能帮上忙
https://stackoverflow.com/questions/40524730
复制相似问题