помогите плиз...
в общем, задачка такова:
есть файл "file.txt" который содержит, например, 5 имен.
файл записан таким образом:
саша
вася
гена
миша
марик
все имена надо загнать в массив а потом вывести их рандомально.
я написал вот так. но что-то не клеется:
$file = file_get_contents('file.txt');
$file = explode("\n", $file);
$file = array_rand($file, 3);
echo($file[2]);
заранее всем спасибо!
Спустя 17 минут, 26 секунд (12.02.2010 - 21:48) lethal написал(а):
$file = file('file.txt');
foreach($file as $str)
{
$mass[]=$str; // заполнение массива
}
Спустя 2 минуты, 9 секунд (12.02.2010 - 21:50) Adil написал(а):
<?php
$file = file("file.txt");
print $file[rand(0,count($file)-1)];
?>
Спустя 20 минут, 39 секунд (12.02.2010 - 22:10) grandtriumpher написал(а):
так как я написал тоже собирает массив.
но как рандомально вывести имена?
допустим у меня список из 100 имен.
мне надо загнать их в массив и рандомально вывести на экран 10 из них!
как это сделать?
но как рандомально вывести имена?
допустим у меня список из 100 имен.
мне надо загнать их в массив и рандомально вывести на экран 10 из них!
как это сделать?
Спустя 6 минут, 42 секунды (12.02.2010 - 22:17) Adil написал(а):
<?php
$file = file("a.txt");
shuffle($file);
for ($i=0;$i<10;$i++){
print $file[$i]."<br />\n";
}
?>
Спустя 2 минуты, 9 секунд (12.02.2010 - 22:19) grandtriumpher написал(а):
спасибо!
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
Спустя 8 минут, 14 секунд (12.02.2010 - 22:28) grandtriumpher написал(а):
кстати, как это сделать не трогая функцию shuffle?
можно ли оставить массив как он есть и вытаскивать
из него имена с помощью array_rand?
можно ли оставить массив как он есть и вытаскивать
из него имена с помощью array_rand?
Спустя 24 минуты, 19 секунд (12.02.2010 - 22:52) Adil написал(а):
можно
Спустя 3 минуты, 2 секунды (12.02.2010 - 22:55) grandtriumpher написал(а):
лол!
а как?![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
а как?
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
Спустя 1 час, 51 минута, 1 секунда (13.02.2010 - 00:46) twin написал(а):
Nezabivaemiy
Так хорошо все начиналось и сам на цикл свалился...
Есть же array_slice()
grandtriumpher
Можно конечно и обкакаться так жидко, что штаны не испачкать... Надо оно?
Так хорошо все начиналось и сам на цикл свалился...
Есть же array_slice()
grandtriumpher
Можно конечно и обкакаться так жидко, что штаны не испачкать... Надо оно?
Спустя 1 час, 28 минут, 3 секунды (13.02.2010 - 02:14) Adil написал(а):
twin ну он по-любому циклом пройдется через массив, чтобы вывести данные..
Спустя 34 минуты, 10 секунд (13.02.2010 - 02:48) twin написал(а):
Для чего? Раз массив перемешан, взять первые 10 значений не обязательно циклом же...
Вообще эта вся хрень в идеале должна выглядеть примерно так (не проверял)
ну или если в строку потом - implode()
Вообще эта вся хрень в идеале должна выглядеть примерно так (не проверял)
<?php
$file = array_map('trim',file("a.txt"));
shuffle($file);
print_r(array_slice($file, 0, 10));
?>
ну или если в строку потом - implode()
Спустя 11 минут, 56 секунд (13.02.2010 - 03:00) Adil написал(а):
Незнаю.. Лично я не люблю print_r() использовать в конечном варианте, а лишь в стадии разработки.
Спустя 40 минут, 21 секунда (13.02.2010 - 03:40) Nikitian написал(а):
Если без shuffle
Жутко неоптимальный код, но вы ведь хотели шашечки.
$arr=file('file.txt');
$show=10;
$max=sizeof($arr);
if($max>=$show)
{
$rnd=array();
while(sizeof($rnd)<$show)
{
$item=mt_rand(0,$max);
if(!in_array($item,$rnd))
{
$rnd[]=$item;
echo$arr[$item].'<br/ >';
}
}
}
else
echo'Меньше, чем надо вывести';
Спустя 8 часов, 55 минут, 21 секунда (13.02.2010 - 12:36) grandtriumpher написал(а):
twin
если бы не надо было, я бы не спрашивал...
п.с. ты на себе испробовал так жидко обосраться что штаны не испачкал?
если бы не надо было, я бы не спрашивал...
п.с. ты на себе испробовал так жидко обосраться что штаны не испачкал?