Quando si semplificare una frazione, dividi il numeratore e il denominatore per il loro massimo comun divisore.
Quindi tutto ciò che serve è calcolare il GCD dei due numeri. Non c'è alcuna funzione built-in per questo, ma è abbastanza facile da implementare il euclidean algorithm:
function gcd($a,$b) {
$a = abs($a); $b = abs($b);
if($a < $b) list($b,$a) = Array($a,$b);
if($b == 0) return $a;
$r = $a % $b;
while($r > 0) {
$a = $b;
$b = $r;
$r = $a % $b;
}
return $b;
}
Poi basta dividere la parte superiore e inferiore da quello.
function simplify($num,$den) {
$g = gcd($num,$den);
return Array($num/$g,$den/$g);
}
var_export(simplify(40,100)); // Array(2,5)
fonte
2012-09-13 18:50:19
Come su questa funzione http://forrst.com/posts/PHP_simplify_fraction-9rg – user1477388