ulvis.paste.net

Paste Search Dynamic
Recent pastes
numbers
  1. <?php
  2. class getStringNumber
  3. {
  4.         public $numbers = [];
  5.         public $strValues = [
  6.                 1 => 'один', 2 => 'два', 3 => 'три', 4 => 'четыре', 5 => "пять",
  7.                 6 => 'шесть', 7 => 'семь', 8 => 'восемь', 9 => 'девять', 10 => 'десять',
  8.                 11 => 'одиннадцать', 12 => 'двенадцать', 13 => 'тринадцать', 14 => 'четырнадцать',
  9.                 15 => 'пятьнадцать', 16 => 'шестьнадцать', 17 => 'семьнадцать', 18 => 'восемьнадцать',
  10.                 19 => 'девятьнадцать', 20 => 'двадцать', 30 => 'тридцать', 40 => 'сорок', 50 => 'пятьдесят',
  11.                 60 => 'шестьдесят', 70 => 'семьдесят', 80 => 'восемьдесят', 90 => 'девяносто', 100 => 'сто',
  12.                 200 => 'двести', 300 => 'триста', 400 => 'четыреста', 500 => 'пятьсот', 600 => 'шестьсот',
  13.                 700 => 'семьсот', 800 => 'восемьсот', 900 => 'девятьсот',
  14.         ];
  15.        
  16.         public $family = ["F" => [1 => 'одна', 2 => 'две']];
  17.        
  18.         public function numberParts($number) {
  19.                 $number = strval($number);
  20.                 for ( $i = strlen($number); $i >= -2; $i -= 3 ) {
  21.                         $b = "";
  22.                         for ($a = 0; $a < 3; $a++) {
  23.                                 if($i+$a < 0) {
  24.                                         $b .= 0;
  25.                                 } else {
  26.                                         $b .= $number[$i+$a];
  27.                                 }
  28.                         }
  29.                         if ($b != "") array_push($this->numbers, $b);
  30.                 }
  31.                 $this->numbers = array_reverse($this->numbers);
  32.         }
  33.        
  34.         public function getString() {
  35.                 $number = $this->numbers;
  36.                 $returnString = "";
  37.                 for($i = 0; $i < count($number); $i++) {
  38.                         if($number[$i][0] != 0) {
  39.                                 $returnString .= $this->strValues[$number[$i][0] . "00"] . " "; // первое число (100, 500...)
  40.                         }
  41.                         if($number[$i][1] == 1) {
  42.                                 $returnString .=  $this->strValues[$number[$i][1] . $number[$i][2]]; // 11, 15...
  43.                         } elseif($number[$i][1] == 0) {
  44.                                 if($number[$i][2] != 0) {
  45.                                         $returnString .=  $this->strValues[$number[$i][2]] . PHP_EOL; // 4, 6...
  46.                                 }
  47.                         } elseif($number[$i][1] > 1) {
  48.                                 $returnString .=  $this->strValues[$number[$i][1] . "0"] . " "; //  
  49.                                 if($number[$i][2] != 0)  {
  50.                                         $returnString .=  $this->strValues[$number[$i][2]] . PHP_EOL; // 5, 8..
  51.                                 }
  52.                         }
  53.                 }
  54.                 $temporary = explode(PHP_EOL, $returnString);
  55.                 foreach($temporary as $key => $value) {
  56.                         if($value == "") unset($temporary[$key]);
  57.                 }
  58.                 foreach($temporary as $key => $value) {
  59.                         if($key != count($temporary)-1) {
  60.                                 if($value == "один") {
  61.                                         $temporary[$key] = "одна";
  62.                                 } elseif ($value == "два") {
  63.                                         $temporary[$key] = "две";
  64.                                 }
  65.                         }
  66.                 }
  67.                 $temporary = array_reverse($temporary);
  68.                
  69.                 foreach($temporary as $key => $value) {
  70.                         if($key == 1) {
  71.                                 var_dump(explode(" ", $value));
  72.                                 $temporary[$key] .= " тысяча";
  73.                         }
  74.                 }
  75.                
  76.                 $temporary = array_reverse($temporary);
  77.                 var_dump($temporary);
  78.         }
  79. }
  80.  
  81. $stringValue = new getStringNumber;
  82. $stringValue->numberParts("21337"); // если число одно, то брать female число из массива
  83. $stringValue->getString(); // короче осталось добавить миллиард условий =)
  84.  
  85. ?>
Parsed in 0.089 seconds