Al simplificar una fracción, divide el numerador y el denominador por su máximo divisor común.
Así que todo lo que necesita es calcular el GCD de los dos números. No hay ninguna función integrada para eso, pero es bastante fácil de poner en práctica el 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;
}
A continuación, sólo dividen la parte superior e inferior por eso.
function simplify($num,$den) {
$g = gcd($num,$den);
return Array($num/$g,$den/$g);
}
var_export(simplify(40,100)); // Array(2,5)
¿Qué tal esta función? Http://forrst.com/posts/PHP_simplify_fraction-9rg – user1477388