14-07-2007, 07:13 PM
J'ai retrouvé cette fonction générique que j'avais utilisé pour un ancien projet :
Code PHP :
<?php
function details_valeur($somme, $unite, $regle) {
$keys = array_keys($regle);
$nb_keys = count($keys);
$result = array( $unite => $somme );
for ($i=$nb_keys-1; $i>0; $i--) {
$unite = $keys[$i];
if (isset($result[$unite])) {
$unite2 = $keys[$i-1];
$ratio = $regle[$unite2];
$quotient = intval(floor($result[$unite] / $ratio));
if ($quotient == 0) {
break;
}
$reste = $result[$unite] % $ratio;
$result[$unite] = $reste;
$result[$unite2] = $quotient;
}
}
return $result;
}
La règle est un tableau assez simple à lire :
Code PHP :
<?php
array( 'po' => 20, 'pa' => 12, 'pb' => 50, 'pf' => 1 )