PHP - 如何回显来自txt文件的随机行?

时间:2018-06-01 05:36:20

标签: php arrays random

我希望通过PHP提供来自文件sitemap.txt的随机行,它们提供为:

link1
link2
link3
link4
...
link10000

我尝试过使用此功能:

$lines = file("sitemap.txt");

$data[link] = $lines[array_rand($lines)];

但是此$data[link]将仅回显输出1随机值,例如link1或link10000

但是,我需要回复sitemap.txt

中的100个随机值

如何优化此功能?

由于

4 个答案:

答案 0 :(得分:3)

您可以使用shuffle和array_slice。

$lines = file("sitemap.txt");
Shuffle($lines);
Echo implode("<br>", array_slice($lines, 0, 100));

这将对链接进行随机播放并提取100个然后在每一行上回显它们 使用非循环解决方案是解决此类问题的最快方法。

请参阅此处的简单示例:https://3v4l.org/Oqnot

答案 1 :(得分:2)

$lines = file("sitemap.txt");

$data = array_rand($lines, 100);
foreach($data as $value) {
    echo $lines[$value]."<br>";
};

输出类似于100行。

   link3 
    link4 
    ..
    ..

答案 2 :(得分:0)

你可以尝试使用shuffle函数来混合数组中的值。然后在for循环中使用array_pop函数。

shuffle($lines);
for ($i = 0; $i < 100; $i++) {
    echo $lines[$i];
}

答案 3 :(得分:0)

你可以尝试这个

  $array=array(); // declaration of array 
  $array=explode("\n", file_get_contents('new.txt')); // get the text file
  shuffle($array); // where array shuffles inside the array

  // below just to show if array is already shuffles

 foreach($array as $a){
   echo $a;
  }
    //end code