通过简单的代码,比较php中sort,natsort和usort的不同。

<html><head><styletype="text/css">li{border:2pxsolidblack;padding:0.5em;width:auto;margin:0.5em;}p{font-size:20px;color:blue;}olli{border:1pxsolidred;margin:0px;}</style></head><body><h4>MyFirstHelloWorldinPHP</h4><?php$dateFile=fopen("info.txt","r");while($dateLine=fgets($dateFile,4096)){$dateList[]=$dateLine;}echo"<ul>";echo"<li><p>Sortingthedatesusingsort()function:</p><ol>";sort($dateList);foreach($dateListas$date){echo"<li>$date</li>";}echo"</ol></li>";echo"<li><p>Sortingthedatesusingnatsort()function:</p><ol>";natsort($dateList);foreach($dateListas$date){echo"<li>$date</li>";}echo"</ol></li>";functionopDateSort($a,$b){if($a==$b)return0;list($aMonth,$aDay,$aYear)=explode("-",$a);list($bMonth,$bDay,$bYear)=explode("-",$b);$aMonth=str_pad($aMonth,2,"0",STR_PAD_LEFT);$bMonth=str_pad($bMonth,2,"0",STR_PAD_LEFT);$aDay=str_pad($aDay,2,"0",STR_PAD_LEFT);$bDay=str_pad($bDay,2,"0",STR_PAD_LEFT);$aDate=$aYear.$aMonth.$aDay;$bDate=$bYear.$bMonth.$bDay;return$aDate>$bDate?1:-1;}echo"<li><p>Sortingthedatesusingusort()withuserdefinedcomparingfunction:</p><ol>";usort($dateList,'opDateSort');foreach($dateListas$date){echo"<li>$date</li>";}echo"</ol></li>";echo"</ul>";?></body></html>

其中info.txt的内容为

4-1-196910-25-19879-11-19826-18-19284-27-19276-12-19237-16-19227-23-1921

结果如图所示