我需要将一组数字和总计转换为一个简单的语句。
例如,如何通过 PHP 以编程方式将以下内容转换为简单的语句,例如 1 of 10
、1 of 100
,甚至舍入一些(例如 100 中的 2
表示 9000,400000)。
生成样本数组:
$arr = array();
for ($i=0; $i < 100; $i++) {
$n = mt_rand(1,1000);
$t = mt_rand(10,100000);
if ($n > $t) continue; // skip!
$arr[] = array($n,$t);
}
/*
// Generates pairs like:
// Array
// (
// [0] => Array ( [0] => 55 [1] => 8774 )
// [1] => Array ( [0] => 814 [1] => 11174 )
// [2] => Array ( [0] => 255 [1] => 32168 )
// ...
// [99] => Array ( [0] => 851 [1] => 24231 )
// )
*/
运行函数并打印简化结果:
foreach ($arr as $a) {
echo $a[0] . '/' . $a[1] . ' ==> ' . simplifyRatio($a[0],$a[1]) . "\r\n";
}
您能指出我如何实现这一目标的正确方向吗?
这是我正在开发的一个函数的开始,但解决方案却无法解决。
function simplifyRatio($n,$t) {
$p = $n/$t;
if ($p > 0.09) return round($n) . ' out of ' . round($t);
if ($p > 0.009) return round($n) . ' out of ' . round($t);
}
理想情况下,分母应为:1,2,3...10,20,30...100,200,300...1000,2000,3000...10000,20000,30000...100000 (最大)
最佳答案
假设始终是百分比。您可能还想sprintf $outof
在显示之前
function convertPercent($iPercent)
{
// Assume validation on $iPercent
$outof = round(100 / $iPercent);
return "1 out of $outof";
}
关于php - 如何将百分比(例如 25%)简化为简单的陈述(例如 4 中的 1)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14902544/