note 55591 added to function.usort

From: Date: Mon, 08 Aug 2005 13:34:42 +0000
Subject: note 55591 added to function.usort
Groups: php.notes 
Request: Send a blank email to php-notes+get-93246@lists.php.net to get a copy of this message
maybe someone can use this. with that compare-function you can get this order: string1, string2, ..., string10, string11, ...string22... else the functions make something like string10,string11,...string1,string20.... or string1,string10,string11,string2,string20... it's not the best solution, but works for my purpose... <? function cmp($a,$b){ list($a)=explode(".",$a); list($b)=explode(".",$b); $s=0; for($i=0;$i<=strlen($a);++$i){ if(is_numeric($a[$i])&&is_numeric($b[$i])){ $n=1; $anum=$bnum=0; while((is_numeric($a[$i])||is_numeric($b[$i]))&& (strlen($a)>=$i||strlen($b)>=$i)){ if(is_numeric($a[$i])&&$i<=strlen($a)) $anum=$a[$i]+$anum*$n; if(is_numeric($b[$i])&&$i<=strlen($b)) $bnum=$b[$i]+$bnum*$n; $n*=10; ++$i; } if($n>1) --$i; if($anum!=$bnum) return $anum<$bnum?-1:1; }elseif($a[$i]!=$b[$i]) return $a[$i]<$b[$i]?-1:1; } } ?> use it like this: <? usort($array,"cmp"); ?> ---- Manual Page -- http://www.php.net/manual/en/function.usort.php Edit -- http://master.php.net/manage/user-notes.php?action=edit+55591 Delete: added to the manual -- http://master.php.net/manage/user-notes.php?action=delete+55591&report=yes&reason=added+to+the+manual Delete: bad code -- http://master.php.net/manage/user-notes.php?action=delete+55591&report=yes&reason=bad+code Delete: spam -- http://master.php.net/manage/user-notes.php?action=delete+55591&report=yes&reason=spam Delete: useless -- http://master.php.net/manage/user-notes.php?action=delete+55591&report=yes&reason=useless Delete: non-english -- http://master.php.net/manage/user-notes.php?action=delete+55591&report=yes&reason=non-english Delete: other reasons -- http://master.php.net/manage/user-notes.php?action=delete+55591&report=yes Reject -- http://master.php.net/manage/user-notes.php?action=reject+55591&report=yes Search -- http://master.php.net/manage/user-notes.php

« previous php.notes (#93246) next »