<?php function sumowanie($tablica, $ileElementów) { $liczbaIteracji = 0; $wynik = 0; foreach($tablica as $liczba) { $liczbaIteracji++; $wynik += $liczba; if($liczbaIteracji == $ileElementów) break; } return $wynik; } function losowanie($tablica) { $liczbaIteracji = 0; foreach ($tablica as $klucz=>$liczba) { if($los < sumowanie($tablica, $liczbaIteracji+1)) { return $klucz; break; } $liczbaIteracji++; } } ?>
Powyższy przykład powinien w 20% przypadków wyświetlić 1, a w 80% 2. Oczywiście zamiast liczb można podawać wszelkie inne typy danych.
Ponadto jeśli suma elementów tablicy podanej jako argument nie jest równa 1, to skrypt sam sobie z tym poradzi (["1"=>0.1, "2"=>0.4] będzie oznaczało tyle co ["1"=>0.2, "2"=>0.8]).