2011-10-09 38 views
0

我有:PHP - 與3個值

@ = 1 
# = 0,5 
% = 0 

max = 10 

例如,如果我有:那麼應該告訴我:

@@@$$$$$$$ 

如果我有3,5

@@@#$$$$$$ 

etc

如果我有3,99然後= 3,5 如果我有3,49然後= 3,0

如何使用這個用foreach還是?

的整數,我可以做:

$number = 8; 
$one = 10 - $number; 
$three = 0 + $number; 

for($i=1;$i <= $one){ 
    echo "@"; 
} 

for($i=1;$i <= $three){ 
    echo "$"; 
} 

但如何,如果是最好的解決方案$數= 3,57

+10

正義。這個問題沒有。 – NullUserException

+3

我不知道。你的第一個例子中'$'來自哪裏?你打算用'%'做什麼?你能否爲你的變量找到更好的名字,因爲'$ one = 10 - $ number;'根本沒有意義,'$ tree = 0 + $ number;'看起來更奇怪。 – Mat

+0

據我所知,這似乎是嘗試生成一個[符號值數字系統](http://en.wikipedia.org/wiki/Sign-value_notation)的ASCII表示,其中@爲1, #是5,並且該字符串用$填充到「最大= 10」字符。除此之外,我仍然迷失。 – jwodder

回答

4

如果我明白你什麼'之後,這應該做你想做的:

<?php 

function printItOut($number) { 
    $s = ''; 
    for ($i = 0; $i < 10; $i++) { 
     if ($i < $number%10) { 
      $s .= '@'; 
     } else if ($i < ($number+0.5)%10) { 
      $s .= '#'; 
     } else { 
      $s .= '$'; 
     } 
    } 
    return $s; 
} 


echo printItOut(3.49), "\n"; 
echo printItOut(3.5), "\n"; 
echo printItOut(3.99), "\n"; 
echo printItOut(4), "\n"; 

輸出:

@@@$$$$$$$ 
@@@#$$$$$$ 
@@@#$$$$$$ 
@@@@$$$$$$ 

裏面的for循環中,我使用的模數運算符查找由10 SO 3%10分$數的整數餘數給出3的結果,3.49%10也導致3因爲(3.49 + 0.5)是3.99,而3.99%10是3,所以我在第一個'else if'塊中檢查數字是否爲0.5或更多。但3.5 + 0.5是4,而4%10是4.