PHP经验——数组自定义排序之多维数组排序

本文讨论了如何使用PHP读取CSV文件,并实现对数据的排序操作。通过实例展示了读取文件、解析数据为二维数组以及自定义排序函数的实现过程,最后整理了代码实现步骤和关键细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天遇到一个问题,是这样的——给你源数据,排序好后写入一个csv文件,原格式如下:

 60177=tfido=Ifmail FidoNet 兼容邮寄服务
 60179=fido=FidoNet 电子邮件和新闻网络
 10082=amandaidx=Amanda 备份服务
 10083=amidxtape=Amanda 备份服务
 1178=skkserv=简单假名到汉字(SKK)日文输入服务器
 1313=xtel=法国 Minitel 文本信息系统
 15=netstat=网络状态(netstat)
 1529=support [prmsd, gnatsd]=GNATS 错误跟踪系统
 2=nbp=名称绑定协议
 2003=cfinger=GNU Finger 服务
 22289=wnn4_Cn=cWnn 中文输入系统
 22305=wnn4_Kr=kWnn 韩文输入系统
 22321=wnn4_Tw=tWnn 中文输入系统(台湾)
 2430=venus=用于 Coda 文件系统(codacon 端口)的 Venus 缓存管理器
 2430=venus=用于 Coda 文件系统(callback/wbc interface 界面)的 Venus 缓存管理器
 2431=venus-se=Venus 传输控制协议(TCP)的副作用
 2431=venus-se=Venus 用户数据报协议(UDP)的副作用
 2432=codasrv=Coda 文件系统服务器端口
 2433=codasrv-se=Coda 文件系统 TCP 副作用
 2433=codasrv-se=Coda 文件系统 UDP SFTP 副作用
 3128=squid=Squid 万维网代理缓存
 4=echo=AppleTalk Echo 协议
 4557=fax=FAX 传输服务(旧服务)
 4559=hylafax=HylaFAX 客户-服务器协议(新服务)
 465=smtps=通过安全套接字层的简单邮件传输协议(SMTPS)

 

我的方法是file函数读入,然后foreach循环得到一个二维数组:

<?PHP
 
     $file = file('4.txt');
     $data = array();
     foreach($file as $key=>$value){
         $data[] = explode('=',$value);
 
     }
?>

这个二维数组的格式就成为这样:

<?php
array(
    [0]=>array([0]=>23,[1]=>Telnet,[2]=>'远程。。')
    [1]=>array([0]=>2,[1]=>Telnet,[2]=>'远程。。')
)
?>        

想了想用PHP的函数进行排序,突然发现,这个是二维数组,PHP自身的排序大多是针对一维的,这是只好使用Usort函数自定义排序了。代码如下,欢迎指正~~

<?PHP
 
     $file = file('4.txt');
     $data = array();
     foreach($file as $key=>$value){
         $data[] = explode('=',$value);
 
     }
     function arrSort($a,$b){
         if(!is_array($a)||!is_array($b)){
             echo $a,$b;
             die('出现非数组');
         }
         return ($a[0]>$b[0])?1:-1;
     }
     usort($data,'arrSort');
     
 
 ?>

转载于:https://www.cnblogs.com/picaso/archive/2012/10/07/2714072.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值