Kolyaj, емнип, равномерно будет как-то так:
$max = 100; $count = 10; $rand = array(); for ($i = $max; $i--; ) { array_push($rand, 1+$i); } for ($i = $max; --$i; ) { $j = rand(0, $i); list($rand[$i], $rand[$j]) = array($rand[$j], $rand[$i]); } $rand = array_slice($rand, 0, $count); |
блин, жаль тут нету смайлика бьющегося головой об стену.
e1f, это у тебя такая сильно хитро выделанная замена shuffle? зачем изобретаешь велосипед? почему бы вообще тогда не воспользоваться array_rand? $max=100; $count=10; $rand=array(); for($i=1;$i<=$max;$i++) $rand[$i]=$i; $rand=array_rand ($rand,$count); но работает, оно медленнее(при больших $max и малых $count) чем мое решение |
Warning: in_array() [function.in-array]: Wrong datatype for second argument in /tmp/htmlRZcyZm on line 21
21: while(in_array($temp_rand=rand(1,$max),$rand_array )); |
исправил
как вы работаете на PHP, если не в состоянии определить и исправить опечатку в 6-и строках кода? |
Вы никогда не учились?
Все прекрастно работает, спасибо большое <?php mysql_connect($hostddd, $userdbddd, $passdbddd); mysql_select_db($databaseddd); $db1n = mysql_num_rows(mysql_query("SELECT * FROM writers")); /////////////////////////////////////////// $rand=array();$temp_rand=NULL; for($i=0;$i<$db1n;$i++) { while(in_array($temp_rand=rand(1,$db1n),$rand)); $rand[$i]=$temp_rand; } ///////////////////////////////////////////// $db1 = mysql_fetch_assoc(mysql_query("SELECT * FROM writers WHERE id='".$rand[0]."'")); $wri = "<a href='index.php?option=com_content&view=article&id=48#".$db1['id']."'> <img src='http://localhost/writers/".$db1['photo']."'></img></a> <br> <b>".$db1['name']."</b><br><span style='font-size: 11px'>Age: ".$db1['age']."</span> <br><span style='font-size: 11px'>Country of Residence: ".$db1['country']."</span> <br><span style='font-size: 11px'>Degree: ".$db1['degree']."</span><br><br>"; $db2 = mysql_fetch_assoc(mysql_query("SELECT * FROM writers WHERE id='".$rand[1]."'")); $wri2 = "<a href='index.php?option=com_content&view=article&id=48#".$db2['id']."'> <img src='http://localhost/writers/".$db2['photo']."'></img></a> <br> <b>".$db2['name']."</b><br><span style='font-size: 11px'>Age: ".$db2['age']."</span> <br><span style='font-size: 11px'>Country of Residence: ".$db2['country']."</span> <br><span style='font-size: 11px'>Degree: ".$db2['degree']."</span><br><br>"; $db3 = mysql_fetch_assoc(mysql_query("SELECT * FROM writers WHERE id='".$rand[2]."'")); $wri3 = "<a href='index.php?option=com_content&view=article&id=48#".$db3['id']."'> <img src='http://localhost/writers/".$db3['photo']."'></img></a> <br> <b>".$db3['name']."</b><br><span style='font-size: 11px'>Age: ".$db3['age']."</span> <br><span style='font-size: 11px'>Country of Residence: ".$db3['country']."</span> <br><span style='font-size: 11px'>Degree: ".$db3['degree']."</span><br><br>"; echo "<br>".$wri.$wri2.$wri3; ?> |
Цитата:
да, я когда-то учился. начинал я достаточно медленно и спокойным равномерным темпом. к моменту, когда я начал изучать БД, и работу PHP с ними, я был уже в состоянии использовать/отладить такой кусок кода. хотя ваш вопрос, у меня вполне мог возникнуть, из-за незнания многих ф-ций PHP, и качественного алгоритмического мышления |
Gvozd,
чооорт, у моего велосипеда ОЧЕНЬ круглые колеса :) мда, действительно, если приходить в PHP из Perl, то есть велосипеды :) |
Цитата:
Цитата:
|
Gvozd, Вы не поверите ;)
Аналога array_shuffle в Перле нет. Можно использовать модуль List::Util, если очень хочется -- тогда будет. И да, там все сделано руками :) |
Цитата:
как же страшно, таки жить.... |
Часовой пояс GMT +3, время: 01:03. |