这段php代码怎么改成倒序读取文件 50

<pre><?phpdefine(LINE_CHAR,strtoupper(PHP_OS)=="WINNT"?"\r\n":"\n");$file=fopen("a.tx... <pre><?php
define(LINE_CHAR, strtoupper(PHP_OS)=="WINNT" ? "\r\n":"\n");
$file = fopen("a.txt", "r");
$data = array();
while(!feof($file)) {
if (count($data)==3) {
break;
}
$data[] =str_replace(LINE_CHAR, "", "[".fgets($file)."]");
$data = array_unique($data);
$data =array_diff($data, array("[]"));
}
echo implode(LINE_CHAR, $data);
?>
现在是正序读a.txt,怎么倒序读a.txt
展开
 我来答
青木堂3
2013-11-30 · TA获得超过348个赞
知道小有建树答主
回答量:304
采纳率:0%
帮助的人:125万
展开全部
可以用php自带函数arsort() ——对数组进行逆向排序并保持索引关系。

echo implode(LINE_CHAR, $data);
前面加$data=arsort($data);
更多追问追答
追问
那个已经是截取完文件100个的了,我要截取文件后100个
追答

那还是要用到php自带函数array_slice() ——函数在数组中根据条件取出一段值,并返回。

array_slice(array,offset,length,preserve)
参数描述
array    必需。规定输入的数组。    
offset    必需。数值。规定取出元素的开始位置。如果是正数,则从前往后开始取,如果是负值,从后向前取 offset 绝对值。    
length    可选。数值。规定被返回数组的长度。如果 length 为正,则返回该数量的元素。如果 length 为负,则序列将终止在距离数组末端这么远的地方。如果省略,则序列将从 offset 开始直到 array 的末端。    
preserve    可选。可能的值:true - 保留键false - 默认 - 重置键   

例子 
<?php
$a=array(0=>"Dog",1=>"Cat",2=>"Horse",3=>"Bird");
print_r(array_slice($a,1,2));
?>
输出:
Array ( [0] => Cat [1] => Horse )

array_slice(array,100,199)——得到数组第100到200的元素

$total = count(array);//数组元素个数

array_slice(array,$total-100,$total)——得到数组最后100个元素

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式