<?php

error_reporting(-1);
mb_internal_encoding("utf-8");

$amount = 54600;

$bills = array(
    5000 => 200,
    1000 => 0,
    500 => 5,
    100 => 23,
);

$result = array();


foreach ($bills as $value => $count) {
    if ($count == 0) {
        continue;
    } else {
        $numBills = floor($amount / $value);
        $count -= $numBills;
        if ($count <= 0) {
            continue;
        } else {
            $result[$value] = $numBills;
            $amount -= ($value * $numBills);
        }
    }
}
var_dump($result);