<?php
function desglose($monto) {
$denominaciones = array(
array('monto' => 500, 'tipo' => 'B'),
array('monto' => 200, 'tipo' => 'B'),
array('monto' => 100, 'tipo' => 'B'),
array('monto' => 50, 'tipo' => 'B'),
array('monto' => 20, 'tipo' => 'B'),
array('monto' => 10, 'tipo' => 'B'),
array('monto' => 5, 'tipo' => 'B'),
array('monto' => 2, 'tipo' => 'M'),
array('monto' => 1, 'tipo' => 'M'),
array('monto' => 0.5, 'tipo' => 'M'),
array('monto' => 0.20, 'tipo' => 'M'),
array('monto' => 0.1, 'tipo' => 'M'),
array('monto' => 0.05, 'tipo' => 'M'),
);
$desglose = array();
foreach($denominaciones as $denominacion) {
if($monto < $denominacion['monto']) {
continue;
}
$cant = (int) ($monto / $denominacion['monto']);
$total = $cant * $denominacion['monto'];
$monto = $monto - $total;
//array_push($desglose, array('cant' => $cant, 'monto' => $denominacion['monto'], 'total' => $total, 'tipo' => $denominacion['tipo']));
$desglose[] = array('cant' => $cant, 'monto' => $denominacion['monto'], 'total' => $total, 'tipo' => $denominacion['tipo']);
}
return $desglose;
}
$denominaciones = desglose(432.311);
foreach($denominaciones as $denominacion) {
echo $denominacion['cant'] . ' x ' . $denominacion['monto'] . ' ' . $denominacion['tipo'] . ' = ' . $denominacion['total'] . PHP_EOL;
}