2016-12-15 5 views
-1

I haben Funktion, die Kodierungszahlen String wie:Wie bekomme ich den Reverse-Code von Buchstaben?

  • 0 -> a
  • 1 -> b
  • 2 -> C
  • ...
  • 45 -> R

Funktion:

public static function encode($number) { 
    $out = ""; 
    $codes = "abcdefghjkmnpqrstuvwxyz23456789ABCDEFGHJKMNPQRSTUVWXYZ"; 

    while ($number > 53) { 
     $key = $number % 54; 
     $number = floor($number/54) - 1; 
     $out = $codes{$key}.$out; 
    } 

    return $codes{$number}.$out; 
} 

Wie funktioniert die umgekehrte Funktion, die Buchstaben in Zahlen umwandelt?

+0

Sie sollten einen Blick auf strpos Funktion übernehmen, die Sie Position eines lettre in String geben: http://php.net/manual/en/function.strpos.php – Yoleth

+0

neu zu erfinden ASCII-Tabelle? – RomanPerekhrest

+0

Basierend auf Ihrem Code, was bedeutet es, wenn die angegebene Zahl größer als 53 ist? – Perumal

Antwort

0

Es ist einfach die strpos Funktion

public static function decode($letter) { 

    $letter = $letter[0]; 

    $codes = "abcdefghjkmnpqrstuvwxyz23456789ABCDEFGHJKMNPQRSTUVWXYZ"; 

    $pos = strpos($codes,$letter); 

    return $pos; 

} 
+0

Keine Antwort Arbeit. Zum Beispiel möchte ich Hk4n, Za, www dekodieren ... Es wird immer 53 – bars96

2

Sie behandeln können eine Zeichenfolge wie ein Array zu verwenden und die Position verwenden, so wäre dies leichter zu kodieren:

$codes = "abcdefghjkmnpqrstuvwxyz23456789ABCDEFGHJKMNPQRSTUVWXYZ"; 
return $codes[$number]; 

Möglicherweise möchten Sie eine Fehlerüberprüfung wie:

return isset($codes[$number]) ? $codes[$number] : false; 
Dann

zu dekodieren, finden Sie den Brief an dieser Position:

$codes = "abcdefghjkmnpqrstuvwxyz23456789ABCDEFGHJKMNPQRSTUVWXYZ"; 
return strpos($codes, $letter); 

strpos()false für Sie zurück, wenn nicht gefunden.

+0

Keine Antwort Arbeit. Zum Beispiel, ich möchte Hk4n, Za, www dekodieren ... Es wird immer 53 – bars96

+0

Dann müssen Sie Ihre Frage mit Ein- und Ausgaben bearbeiten. Das ist aus Ihrer Frage nicht ersichtlich. – AbraCadaver

Verwandte Themen