Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- function helyiertek($x, $helyiErtek) {
- $szamok = [
- 'szazas' => ["", "egyszáz", "kettőszáz", "háromszáz", "négyszáz", "ötszáz", "hatszáz", "hétszáz", "nyolcszáz", "kilencszáz"],
- 'tizes' => ["", "tizen", "huszon", "harminc", "negyven", "ötven", "hatvan", "hetven", "nyolcvan", "kilencven"],
- 'tizes2' => ["", "tíz", "húsz", "harminc", "negyven", "ötven", "hatvan", "hetven", "nyolcvan", "kilencven"],
- 'egyes' => ["", "egy", "kettő", "három", "négy", "öt", "hat", "hét", "nyolc", "kilenc"]
- ];
- return $szamok[$helyiErtek][$x];
- }
- function alakit($input) {
- if (strlen($input) > 9) {
- return "Túl hosszú a szám!";
- }
- $helyiErtekNevek = [
- 7 => "millió-",
- 4 => "ezer-"
- ];
- $ki = "";
- $i = 1; // számjegyszámláló
- $elozo = 0; // előző számjegy
- while (strlen($input) > 0) {
- $e = (int)substr($input, -1); // aktuális számjegy
- $input = substr($input, 0, -1);
- // Millió vagy ezer elválasztó
- if (isset($helyiErtekNevek[$i])) {
- $ki = $helyiErtekNevek[$i] . $ki;
- }
- // Helyi érték kezelése
- if ($i % 3 == 1) {
- $ki = helyiertek($e, 'egyes') . $ki;
- } elseif ($i % 3 == 2) {
- $ki = ($elozo === 0 ? helyiertek($e, 'tizes2') : helyiertek($e, 'tizes')) . $ki;
- } else {
- $ki = helyiertek($e, 'szazas') . $ki;
- }
- $i++;
- $elozo = $e;
- }
- // Tisztítások
- $ki = str_replace("-ezer-", "-ezer", $ki); // "-ezer-" -> "-ezer"
- $ki = rtrim($ki, "-"); // Utolsó "-" eltávolítása
- return $ki;
- }
- // Tesztelés
- $input = "1234567"; // Példa bemenet
- echo alakit($input); // Eredmény kiírása
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement