2014-05-14 9 views
8
$my_alphabet = "T"; 

Das obige Zeichen "T" sollte die genaue Position/Nummer des Alphabets drucken. d.h 20Konvertieren von Buchstaben in alphabetische Position in PHP

Also, wenn

$my_alphabet = "A" ; 
  • sollte ich in der Lage sein, die Position des Alphabets zu bekommen. d.h. 1

Wie kann ich das erreichen?

Ich sehe Umwandlung von Nummer in Alphabet .. aber das Gegenteil ist nicht dort irgendwo.

Danke, Kimz

Antwort

19

Durch den ASCII-Wert mit:

ord(strtoupper($letterOfAlphabet)) - ord('A') + 1 

in ASCII die Buchstaben in alphabetischer Reihenfolge sortiert, so ...

+0

Auch wenn die Buchstaben an der Stelle +1 jeder in ascii ein Problem entsteht, wenn Groß- und Kleinbuchstaben können gefunden werden, da b nicht ord (A) +1, sondern ord (a) +1 ist. In diesem Fall müssen entweder alle Buchstaben in Großbuchstaben oder Kleinbuchstaben umgewandelt werden (strtoupper, strtolower) ODER es muss mit ctype_upper überprüft werden, wenn der Buchstabe Großbuchstaben ist (dann die Lösung von bwoebi) oder wenn sein Kleinbuchstabe dann ord ('a') von ord ('A') muss verwendet werden. – Thomas

+0

@ThomasE. oder verwenden Sie einfach eine 'strtoupper()' bwoebi

+0

bwoebi -danke .. das ist was ich will. Ausgezeichnet. habe meine Zeit gerettet. ;) – user3350885

4

das Alphabet Buchstaben Falls nicht Großbuchstaben, können Sie diese Codezeile hinzufügen, um sicherzustellen, dass Sie die richtige Position des Buchstabens erhalten

$my_alphabet = strtoupper($my_alphabet); 

Wenn Sie entweder 'T' oder 't' erhalten, wird immer die richtige Position zurückgegeben.

Ansonsten @bwoebi ‚s Antworten perfekt den Job

+0

ich kochte bwoebi code mit dem ich mein rezept vorbereiten möchte. danke auch für deinen urcode – user3350885

2

Sie sollten etwa (Groß-, Kleinbuchstaben) vorsichtig sein:

<?php 
$upperArr = range('A', 'Z') ; 
$LowerArr = range('a', 'z') ; 
$myLetter = 't'; 

if(ctype_upper($myLetter)){ 
    echo (array_search($myLetter, $upperArr) + 1); 
}else{ 
    echo (array_search($myLetter, $LowerArr) + 1); 
} 
?> 
Verwandte Themen