Home  >  Article  >  Backend Development  >  Detailed explanation of PHP multi-dimensional array custom sorting example

Detailed explanation of PHP multi-dimensional array custom sorting example

伊谢尔伦
伊谢尔伦Original
2017-06-26 13:08:451477browse

I encountered a problem today, it is like this - give you the source data, sort it and write it into a csv file. The original format is as follows:

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)

My method is to read in the file function, and thenforeachLoop to get a two-dimensional array:

a7ee5fb7de96b8f11fab6aa1367f9a8d$value){
         $data[] = explode('=',$value);
 
     }
?>

The format of this two-dimensional array becomes like this:

<?php
array(
    [0]=>array([0]=>23,[1]=>Telnet,[2]=>&#39;远程。。&#39;)
    [1]=>array([0]=>2,[1]=>Telnet,[2]=>&#39;远程。。&#39;)
)
?>

Think about using PHP functions After sorting, I suddenly discovered that this is a two-dimensional array. Most of PHP's own sorting is for one dimension. This is why I have to use the Usort function to customize the sorting. The code is as follows

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

The above is the detailed content of Detailed explanation of PHP multi-dimensional array custom sorting example. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn