以反向顺序读取文本文件但首先从首次输入读取

时间:2014-11-05 09:26:59

标签: php arrays reverse

嗯,似乎很奇怪以前没有人问过这个问题,而且几个小时一直在困扰我,但这就是我想做的事。

我需要反转文本文件的顺序,显示最后10个条目并打印内容,但不是从最后显示的条目开始。相反,我希望维持秩序。即。第一个条目应首先显示,最后一个条目应显示最后一个。

我已经有了PHP代码来反转并显示我在用户的帮助下发布的最后10个条目。非常感谢您的帮助!

代码

<?php $text = file('user.txt');
$text= array_reverse($text);
$counter=0; 
while ($counter < 10) { 
   if (isset($text[$counter])) { 
       echo $text[$counter] . "";
   } 
   $counter++;
} 
?>

2 个答案:

答案 0 :(得分:0)

希望以下代码适合您:

                   $text = file('user.txt'); 
                   $total_line=count($text);
                   $start=$total_line-10;
                   for($i=$start;$i<=$total_line;$i++)
                   {
                          echo $text[$i].'<br>';
                   }

如果您对上述代码有任何疑问,请与我们联系。

答案 1 :(得分:0)

你快到了:

$newArray = array_reverse(array_slice($text, 0, 10));
var_dump($newArray);

array_slice获得前10个(反向前10个),然后反转数组 获得原始订单。

完整代码:

$text = file('user.txt');
$text= array_reverse($text);
$newArray = array_reverse(array_slice($text, 0, 10));
foreach($newArray as $value) 
  printf("<pre>%s</pre>", $value);

如果你不需要反向完整的数组,你只能获取你真正需要的东西:

$text = file('user.txt');
$newArray = array_slice($text, count($array)-10);
foreach($newArray as $value) 
      printf("<pre>%s</pre>", $value);