我希望通过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
如何优化此功能?
由于
答案 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