Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Соответствие весов
 
 автор: sidPR   (28.03.2008 в 14:41)   письмо автору
 
 

есть массив:


<?
$arr
[0]['weight'] = 120;
$arr[1]['weight'] = 110;
$arr[2]['weight'] = 10;
$arr[3]['weight'] = 80;
?>

В соответствии с весами нужно выбрать любой .

Нужна функция которая без обычных раундов а с помощью mt_rand()/mt_getrandmax() таких функций выдавала на выводе Ключ или например параметр массива типо $arr[0][id]

   
 
 автор: sidPR   (28.03.2008 в 14:58)   письмо автору
 
   для: sidPR   (28.03.2008 в 14:41)
 

<?
$arr
[0]['WEIGHT'] = 100;
$arr[0]['ID'] = 22;
$arr[1]['WEIGHT'] = 120;
$arr[1]['ID'] = 23;
$arr[2]['WEIGHT'] = 300;
$arr[2]['ID'] = 24;
$arr[3]['WEIGHT'] = 90;
$arr[3]['ID'] = 25;
$arr[4]['WEIGHT'] = 50;
$arr[4]['ID'] = 26;
$arr[5]['WEIGHT'] = 10;
$arr[5]['ID'] = 27;
$arr[6]['WEIGHT'] = 20;
$arr[6]['ID'] = 28;

            
                foreach (
$arr as $key){
                    
$intSum += intval($key["WEIGHT"]);
                }
                
                
$rndWeight $intSum * (mt_rand()/mt_getrandmax());
                
$intStep 0;
                
                foreach (
$arr as $key){
                    if(
$rndWeight>=$intStep && $rndWeight<=$intStep+$key["WEIGHT"]){
                        
$ID $key["ID"];
                        break;
                    }
                    
$intStep += $key["WEIGHT"];
                }
                
$ID   intval($ID )<=intval($ID);
                echo 
$ID;
?>


Насколько я прав ?

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования