- explode: documentation ( source)
<?php
echo get_fraction(3.4);
function get_fraction($decimal){
$decimal_array = explode( $decimal, '.');
$whole_number = $decimal_array[0];
$decimal_number = $decimal_array[1];
$multiplier = "1";
for ($i = 0; $i < strlen($decimal_number); $i++) {
$multiplier .= '0';
}
$multiplier = int($multiplier);
$decimal_int = $multiplier * $decimal_number;
for ($i = 2; $i < $decimal_int; $i++) {
if( $decimal_int % $i == 0 && $multiplier % i == 0){
$decimal_int = $decimal_int / $i;
$multiplier = $multiplier / $i;
}
// code...
}
if( $decimal_int){
if( $whole_number){
return $whole_number . ' ' . $decimal_int . '/' . $multiplier;
}else{
return $decimal_int . '/' . $multiplier;
}
}else{
return $whole_number;
}
}