2011-05-18 105 views
3

的價值我有分數的數組:PHP - 實際執行變量

$fractions = array('1/8', '1/4', '1/2'); 

有什麼辦法,我可以讓PHP實際執行部門得到一個十進制值?

喜歡的東西:

foreach($fractions as $value) { 
    $decimal = [the result of 1 divided by 8, or whatever the current fraction is in value]; 
} 
+1

你可以更好地構建你的數組,但是如果你不會像AJ所說的那樣使用'eval()' – 2011-05-18 22:14:40

+0

這個數組只是爲了幫助解釋這個問題。 – 2011-05-19 13:48:25

回答

6

你有它的樣子,你應該只是爆炸並做你的事業部:

foreach($fractions as $value) { 
    $exp = explode('/',$value); 
    $decimal = $exp[0]/$exp[1]; 
} 

你可以也eval(),但我通常不會那樣做。這也是一個表現。

3

您可以撥打eval()

$fractions = array('1/8', '1/4', '1/2'); 

foreach($fractions as $value) { 
    $decimal = eval("return $value;"); 
    echo "$value = $decimal\n"; 
} 
+0

爲此,行必須讀取'$ decimal = eval(「return $ value;」);'或者eval將會失敗,並出現'Parse error:syntax error,unexpected $ end'。我真的不喜歡使用'eval' – runfalk 2011-05-18 23:29:34

+0

感謝您指出了這一點,糾正了我的例子。 – 2011-05-19 00:56:07

+0

感謝您的額外建議AJ。我會考慮將來可能的使用情況。 – 2011-05-19 13:49:22