Use the following function to find the percentage value of one number to another. If the $total parameter is zero then zero is returned as this would otherwise result in a division by zero error.

```
function get_percentage($total, $number)
{
if ( $total > 0 ) {
return round(($number * 100) / $total, 2);
} else {
return 0;
}
}
```

Here are some examples of the function in action.

```
echo get_percentage(100,50).'%'; // 50%
echo get_percentage(100,10).'%'; // 10%
echo get_percentage(100,100).'%'; // 100%
echo get_percentage(400,3).'%'; // 0.75%
echo get_percentage(1234,4321).'%'; // 350.16%
```

## Comments

I just had to swap $total and 100 over for my purposes, i.e returning 100/200 as 50%.

Hello Philip, that formula does not generate the correct %, then I write the correct one: (number * 100) / total:

/*

return round(($number * 100) / $total, 2);

*/

Quite right. It must have been right at some point but it's clearly been wrong for a while.

Thanks for the correction! I've updated the code.

Really liked this post, thanks!