PHP: $A = array('обяз1','обяз2','обяз3'); $B = array('необяз1','необяз2','необяз3',''); $R = array_rand($B, 2); $C = array_merge($A,$R); shuffle($C); foreach ($C as $variant) { print "<li>$variant</li>"; } Массив $B после array_rand выдает ключ а не значение, как вывести значение через foreach?
Прочитать как работает http://ua2.php.net/array_rand И что он возвращает. В foreach у тебя в коде выводится только значение.
PHP: <? $B = array('необяз1','необяз2','необяз3',''); $R=array_rand($B,2); for($i=0,$c=count($R);$i<$c;$i++){ print $B[$R[$i]]; } ?> И ещё PHP: <? $B = array('необяз1','необяз2','необяз3',''); for($i=0$i<2;$i++){ print $B[array_rand($B)]; } ?> и много др. вариантов
Спс, вот накарякал свой еще вариант с шафлом PHP: $B = array('необяз1','необяз2','необяз3',''); shuffle($B); for ($i=0; $i<=3; $i++){ $b_mod[] = $B[$i]; }