Her şeyden önce, sistem sadece budur ... stupid. Yeni böylece 0 veya birkaç views çekilmesi için bir şans asla afiş oluşturulur ve süre will never be actually seen ... O manzaralı dolu pankartlar sürdürmektedir
Bu gibi görünen bir dizi varsa, söyleniyor:
$banners = array
(
    'banner1' => 1,
    'banner2' => 2,
    'banner3' => 4,
    'banner4' => 8,
    'banner5' => 16,
);
Sen weightily bir afiş almak için bu gibi bir işlevi kullanabilirsiniz:
function Probability($data)
{
    if (is_array($data) === true) {
        $result = 0;
        $probability = mt_rand(1, array_sum($data));
        foreach ($data as $key => $value) {
            $result += $value;
            if ($result >= $probability) {
                return $key;
            }
        }
    }
    return false;
}
Usage (test it @ CodePad.org veya @ IDEOne):  strong>
echo Probability($banners); // banner5
Sample from 100 executions:
Array
(
    [banner5] => 41
    [banner4] => 38
    [banner3] => 10
    [banner2] => 8
    [banner1] => 3
)