2014-10-17 3 views
-1

В принципе у меня есть следующая строка:Преобразование числовой строки в строку

1,254.40 

И я должен преобразовать его в следующей вещь:

one * two * five * four * usd * four * zero * cents 

Как я могу это сделать? До сих пор я написал что-то вроде этого:

public function priceToString($price) 
{ 
    $output = ""; 

    $chars = str_split($price); 

    foreach($chars as $char) 
    { 
     if(is_numeric($char)) 
     { 
      $output .= (string)$char . " *"; 
     } 
    } 

    return $output; 
} 

Но это не работает, потому что он показывает просто целые числа ... Как я могу решить эту проблему?

+1

Есть интерфейсы cetains доступны, чтобы сделать это (http://bloople.net/num2text/) Вы можете найти это сообщение полезным: HTTP : //stackoverflow.com/questions/11500088/php-express-number-in-words – Developer

+0

Вы должны написать код, чтобы преобразовать каждое число в текстовый эквивалент (и то же самое с usd и cents). –

+0

вы должны создать массив отображения для каждого номера – madz

ответ

1

(Didnt проверка на достоверность, но что-то вдоль этих линий:

$numericText = array('zero','one','two','three','four','five','six','seven','eight','nine'); 

$price = '1,254.40'; 
$chars = str_split($price); 
foreach($chars as $char) { 
    if(is_numeric($char)) { 
     $output .= $numericText[(int)$char] . " *"; 
    } elseif($char == '.') { 
     $output .= 'usd *'; 
    } 
} 
$output .= ' cents'; 
Смежные вопросы