2014-10-17 276 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的API(http://bloople.net/num2text/)您可能会发现这篇文章有帮助:HTTP ://stackoverflow.com/questions/11500088/php-express-number-in-words – Developer 2014-10-17 10:50:28

+0

你必须编写代码,将每个数字转换为相应的文本(和美元和美分相同)。 – 2014-10-17 10:50:30

+0

您应该创建一个为每个数字映射数组 – madz 2014-10-17 10:55:28

回答

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';