2014-10-17 271 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';