关于读取.txt文件中的数据

zmouki 2008-03-21 04:12:07
TXT文件中有如下数据信息:
2008-03-20 13:07:31|127.0.0.1|images/upload/public/2.jpg|【钻石信誉】200mw激光手电(新品上市,超酷外型) |1000|20|10|
2008-03-20 13:07:57|127.0.0.1|images/upload/public/03.jpg|100mw激光笔(5-150mW绿光笔,天文指星笔厂家直销) |2200|20|10|
2008-03-20 13:09:15|127.0.0.1|images/upload/public/3.jpg|野营帐篷,旅游帐篷,双人情侣帐篷,外贸余单品质好 |2000|20|10|
2008-03-20 13:09:32|127.0.0.1|images/upload/public/5.jpg|双童牌14头LED手电筒(带防滑橡胶圈)LED灯户外野营的好伴侣 |2100|20|10|
2008-03-20 16:45:22|127.0.0.1|images/upload/public/abc.jpg|★ONEPOLAR极地背囊981户外运动徒步/登山背包★宝蓝50L+5L★ |150|20|10|
2008-03-20 16:45:44|127.0.0.1|images/upload/public/pic_2_2.jpg|8L折叠水桶/钓鱼水桶/汽车水桶/家用水桶 江浙沪快递6元 |1500|20|10|
2008-03-21 13:48:11|127.0.0.1|images/upload/public/showimg.jpg|08紫色春天韩版糖果圆头系腕漆皮高跟娃娃单鞋 G1116 粉红色 |123|12|12|
2008-03-21 14:14:39|127.0.0.1|images/upload/public/show.jpg|(特价)(两色选)9163-星辰陪伴的夜晚-经典的Wilon情侣对表 |100|15|10|
分别表示日期 | IP |图片地址 | 商品名 | 单价 | 特快专递 | 普通快递
PHP文件中有如下代码:
$resourse= fopen('record.txt','r');
$array=array();
$sortp=array();
$sortd=array();
while ($content=fgets($resourse))
{
list($date,$ip,$file_path,$goods,$price,$emsprice,$deliveryprice)=explode('|',$content);
array_push($array,explode('|',$content));
}
fclose($resourse);

for ( $i = 0 ;$i<$total;$i++)
{
/*if ($i%2==0)
{
$tpl=>assign ("style","background-color: #cccccc;");
}*/
//地址
$read[$i]['Photo']=$array[$i][2];
//商品名
$read[$i]['GoodsName']=$array[$i][3];
//价格
$read[$i]['SalePrice']=$array[$i][4];
//EMS
$read[$i]['EMS']=$array[$i][5];
//快递
$read[$i]['Delivery']=$array[$i][6];
//价格数组
$sortp[]=$array[$i][4];
}
if ($sortbyprice==1)//判断是否点击了排序按扭
{
asort($sortp); //对价格进行了排序
print_r($sortp);
}

$tpl->assign ("read",$read);

问题是:此时价格排序完之后,如何将该行全部信息传给$read呢?查了查php.net上的说法,自已感觉要用fseek(),请各位再指点一下。谢过!
...全文
102 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ClintNorthwood 2008-03-21
  • 打赏
  • 举报
回复
楼主的数据中'SalePrice'中有空格,先把这里改一下:
//价格
$read[$i]['SalePrice']=$array[$i][4];
改为
$read[$i]['SalePrice'] = trim($array[$i][4]);

然后再排序
if ($sortbyprice==1)//判断是否点击了排序按扭
{
for($i=0; $i<$total; $i++){
for($j=$total-1; $j>$i; $j--){
if ($read[$j]['SalePrice'] < $read[$j-1]['SalePrice']){
$tmp = $read[$j];
$read[$j] = $read[$j-1];
$read[$j-1] = $tmp;
}
}
}
}

查看结果
echo '<pre>';
print_r($read);
echo '</pre>';
zmouki 2008-03-21
  • 打赏
  • 举报
回复
$read这个数组是个二维的$read[0]['SalePrice']代表第一行的价格,$read[1]['SalePrice']代表第二行的价格,如果只写asort($read),这个是在对谁做排序,我感觉这么写不行!
zmouki 2008-03-21
  • 打赏
  • 举报
回复
怎么讲?没看明白!
shaozi110 2008-03-21
  • 打赏
  • 举报
回复
不能先把价格放到$read里面 read[$i]['Money']=$array[$i][4];
然后再 asort($read) 么?

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧