Skip to content

Instantly share code, notes, and snippets.

@broject
Created January 14, 2018 12:32
Show Gist options
  • Save broject/6b4a58e69a3b1030ed4c9ee8091343ba to your computer and use it in GitHub Desktop.
Save broject/6b4a58e69a3b1030ed4c9ee8091343ba to your computer and use it in GitHub Desktop.
money to text
<?php
if (!defined('BASEPATH'))
exit('No direct script access allowed');
if (!function_exists('number_str')) {
function number_str($number) {
$strp = strpos($number, '.');
$n = $strp > 0 ? substr($number, 0, $strp) : $number;
$nums = array(); /* нэгж аравт зуут мянгат даннэгж */
$nums['num_1'] = array('нэг', 'арван', 'нэг', 'нэгэн', 'нэг');
$nums['num_2'] = array('хоёр', 'хорин', 'хоёр', 'хоёр', 'хоёр');
$nums['num_3'] = array('гурав', 'гучин', 'гурван', 'гурван', 'гурван');
$nums['num_4'] = array('дөрөв', 'дөчин', 'дөрвөн', 'дөрвөн', 'дөрвөн');
$nums['num_5'] = array('тав', 'тавин', 'таван', 'таван', 'таван');
$nums['num_6'] = array('зургаа', 'жаран', 'зургаан', 'зургаан', 'зургаан');
$nums['num_7'] = array('долоо', 'далан', 'долоон', 'долоон', 'долоон');
$nums['num_8'] = array('найм', 'наян', 'найман', 'найман', 'найман');
$nums['num_9'] = array('ес', 'ерэн', 'есөн', 'есөн', 'есөн');
$nums['num_0'] = array('', '', '', '', '');
//[753,000]
$sec = array();
while (strlen($n) >= 3) {
$suul3 = substr($n, -3);
$n = substr($n, 0, strlen($n) - 3);
array_unshift($sec, $suul3);
}
if (!empty($n)) {
array_unshift($sec, $n);
}
$str = '';
while (count($sec)) {
//[753,000] => 753
$item = array_shift($sec);
$sl = strlen($item);
//000 эсэх
$tootoi = FALSE;
for ($i = 0; $i < $sl; $i++) {
//7
$tsi = $item[$i];
//$nums['num_1'] = array('нэг', 'арван', 'нэг', 'нэгэн');
//$nums['num_3'] = array('гурав', 'гучин', 'гурван', 'гурван');
$arr = $nums['num_' . $tsi];
//53
if ($tsi == '0') {
continue;
} else {
$tootoi = TRUE;
}
$uld_bod = $uld = substr($item, $i + 1);
$orontoi_too = (count($sec) > 0 && $i + 1 == $sl);
//нэг сая Vs ! нэгэн сая
$num_str = $orontoi_too ? ($sl == 1 ? $arr[4] : $arr[3]) : $arr[strlen($uld_bod)];
$postfix = (strlen($uld) == 2 ? ' зуун ' : ' ');
$str .= ($num_str . $postfix);
}
if ($tootoi) {
$oron = count($sec);
switch ($oron) {
case 1:
$str .= ' мянга ';
break;
case 2:
$str .= ' сая ';
break;
case 3:
$str .= ' тэрбум ';
break;
case 4:
$str .= ' их наяд ';
break;
}
}
}
return $str;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment