Advertisement
tibiole

Untitled

Dec 6th, 2024
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.78 KB | None | 0 0
  1. <?php
  2.  
  3. function helyiertek($x, $helyiErtek) {
  4.     $szamok = [
  5.         'szazas' => ["", "egyszáz", "kettőszáz", "háromszáz", "négyszáz", "ötszáz", "hatszáz", "hétszáz", "nyolcszáz", "kilencszáz"],
  6.         'tizes' => ["", "tizen", "huszon", "harminc", "negyven", "ötven", "hatvan", "hetven", "nyolcvan", "kilencven"],
  7.         'tizes2' => ["", "tíz", "húsz", "harminc", "negyven", "ötven", "hatvan", "hetven", "nyolcvan", "kilencven"],
  8.         'egyes' => ["", "egy", "kettő", "három", "négy", "öt", "hat", "hét", "nyolc", "kilenc"]
  9.     ];
  10.     return $szamok[$helyiErtek][$x];
  11. }
  12.  
  13. function alakit($input) {
  14.     if (strlen($input) > 9) {
  15.         return "Túl hosszú a szám!";
  16.     }
  17.  
  18.     $helyiErtekNevek = [
  19.         7 => "millió-",
  20.         4 => "ezer-"
  21.     ];
  22.  
  23.     $ki = "";
  24.     $i = 1; // számjegyszámláló
  25.     $elozo = 0; // előző számjegy
  26.  
  27.     while (strlen($input) > 0) {
  28.         $e = (int)substr($input, -1); // aktuális számjegy
  29.         $input = substr($input, 0, -1);
  30.  
  31.         // Millió vagy ezer elválasztó
  32.         if (isset($helyiErtekNevek[$i])) {
  33.             $ki = $helyiErtekNevek[$i] . $ki;
  34.         }
  35.  
  36.         // Helyi érték kezelése
  37.         if ($i % 3 == 1) {
  38.             $ki = helyiertek($e, 'egyes') . $ki;
  39.         } elseif ($i % 3 == 2) {
  40.             $ki = ($elozo === 0 ? helyiertek($e, 'tizes2') : helyiertek($e, 'tizes')) . $ki;
  41.         } else {
  42.             $ki = helyiertek($e, 'szazas') . $ki;
  43.         }
  44.  
  45.         $i++;
  46.         $elozo = $e;
  47.     }
  48.  
  49.     // Tisztítások
  50.     $ki = str_replace("-ezer-", "-ezer", $ki); // "-ezer-" -> "-ezer"
  51.     $ki = rtrim($ki, "-"); // Utolsó "-" eltávolítása
  52.  
  53.     return $ki;
  54. }
  55.  
  56. // Tesztelés
  57. $input = "1234567"; // Példa bemenet
  58. echo alakit($input); // Eredmény kiírása
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement