Převod písmen na čísla – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Převod písmen na čísla – PHP – Fórum – Programujte.comPřevod písmen na čísla – PHP – Fórum – Programujte.com

 

Merlin
~ Anonymní uživatel
13 příspěvků
25. 6. 2014   #1
-
0
-

Ahoj, moc prosím o pomoc s jednou pro většinu z vás jistě drobností.

Mám řetězec devíti písmen a potřeboval bych jej nějakým algoritmem převést na číslo, maximálně desetimístné, takže bohužel bez nároku na možnost zpětného převodu. Třeba podle klasické a jednoduché Pythagorejské tabulky:

1 - A J S
2 - B K T
3 - C L U
4 - D M V
5 - E N W
6 - F O X
7 - G P Y
8 - H Q Z
9 - I R

Můžete mi prosím někdo poradit, jak to udělat jednoduše a elelgantně? Předem velmi děkuji.

Nahlásit jako SPAM
IP: 83.208.235.–
peter
~ Anonymní uživatel
4014 příspěvků
25. 6. 2014   #2
-
0
-
Nahlásit jako SPAM
IP: 2001:718:2601:258:a94f:12...–
peter
~ Anonymní uživatel
4014 příspěvků
25. 6. 2014   #3
-
0
-

echo (ord(n) - ord('A')) % 10; //*oprava, zavorka, samozrejme

Nahlásit jako SPAM
IP: 2001:718:2601:258:a94f:12...–
Kit+15
Guru
25. 6. 2014   #4
-
0
-
Nahlásit jako SPAM
IP: 147.229.242.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
peter
~ Anonymní uživatel
4014 příspěvků
25. 6. 2014   #5
-
0
-

Jeste jsem videl pouzit str_replace pro odstranovani diakritiky. Kdybys chtel ta cisla menit, treba
$a = "ABCDEFGHIJK";
$b = "01234501234";
str = str_replace($a,$b,$str)

Nahlásit jako SPAM
IP: 2001:718:2601:258:a94f:12...–
Merlin
~ Anonymní uživatel
13 příspěvků
25. 6. 2014   #6
-
0
-

Moc vám díky oběma. Použil jsem crc32 a dělá co jsem potřeboval, jen někdy vrací 9 číslic, někdy 10 (což by nevadilo, pokud jich nevratí za nějakých okolností 11) a vyčetl jsem, že se může chovat rozdílně na různých platformách, tak rád ještě vyzkouším tu funkci str_replace(), mohla by mi dávat předvídatelnější výsledek. S diakritikou sice problém nemám (potřebuji převést identifikátor objednávky typu "KAHJUCOXM" na variabilní symbol), ale ord() jsem bohužel moc nepochopil, jsem PHP lama. Každopádně velmi děkuji za nasměrování, moc pomohlo, teď už to rozchodím :)

Nahlásit jako SPAM
IP: 83.208.235.–
peter
~ Anonymní uživatel
4014 příspěvků
26. 6. 2014   #7
-
0
-

Ord je prevod znaku na cislo, poradi v ascii tabulce znaku.
http://www.asciitable.com/
Kdyz si najdes ve sloupci Chr A, tak ve sloupci Dec je dekadicke (v desitkove soustave) cislo poradi 65
ord('A') = 65
Takze, kdyz chces znak prevest na cislo, tak pres ord zjistis jeho poradi a odectes od neho poradi pismene A.
char = 'X'
ord(char) - ord('A') = 88 - 65 = 23
A protoze jsi to omezil jen na 0-9,0-9,0-6 cisel, tak ty se daji ziskat pres modulo.
23 % 10 = 3
22 % 10 = 2 (W)
21 % 10 = 1 (V)
20 % 10 = 0 (U)
19 % 10 = 9 (T)...
A pokud ti modulo nic nerika z matematiky (zbytek po celociselnem deleni, 2.-3. rocnik ZS se uci delit a mozna ucitel pouzije i tohle cizi slovo), tak si to muzes napsat jako
n - floor(n/10)*10 = 23 - floor(23/10)*10 = 13 - 2*10

Nahlásit jako SPAM
IP: 2001:718:2601:258:6da4:f3...–
peter
~ Anonymní uživatel
4014 příspěvků
26. 6. 2014   #8
-
0
-

kus, oprava 23 - 2*10

Nahlásit jako SPAM
IP: 2001:718:2601:258:6da4:f3...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 64 hostů

Podobná vlákna

Převod písmen — založil pazdy

Převod z čísla do znaku — založil Jan Růžička

Prevod cisla na retazec — založil olgo

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý