A dan z ye her karakteri göz önüne alındığında, PHP kullanarak alfabesiyle sonraki mektubu almak için en etkili yolu nedir?
my Bence bunu yapmanın en etkili yolu just increment strong> dize değişkeni etmektir.
$str = 'a';
echo ++$str; // prints 'b'
$str = 'z';
echo ++$str; // prints 'aa'
Bunu istiyorum ama onun yerine almak sıfırlamak istemiyorsanız 'z'
bir 'a'
sadece çıkan dize uzunluğunu kontrol edebilirsiniz 'aa'
vermek artırılmıyor görüldüğü gibi ve onun >1
sıfırlamak eğer.
$ch = 'a';
$next_ch = ++$ch;
if (strlen($next_ch) > 1) { // if you go beyond z or Z reset to a or A
$next_ch = $next_ch[0];
}
Peki, bu "kenar durumlarda" ile ne yapmak istediğinizi tam olarak ne bağlıdır. Ne Sonuç karakter olduğunda bekliyorsunuz z
veya Z
? Eğer same case bir sonraki harfi, ya da sadece bir sonraki harfi, nokta istiyorsun?
Bunun cevabını bilmeden, çok temel durumda, sadece bunu yapabilirsiniz:
$next_character = chr(ord($current_character) + 1);
Ama olduğunuzda ASCII değerlerine göre, Z
Bu size [
verecek, ve z
sana {
verecektir.
Edited as per comment:
Eğer aynı davanın bir sonraki karakteri gerekiyorsa, muhtemelen yukarıdaki satırdan sonra basit kontrolleri ekleyebilirsiniz:
if ($next_character == '[')
$next_character = 'A';
else if ($next_character == '{')
$next_character = 'a';
Bunlar çok basit işlemler, ben gerçekten böyle bir durumda verimlilik dert olmaz.
Nasıl kullanma hakkında ord() and chr()?
<?php
$next = chr(ord($prev)+1);
?>