note 53779 added to function.array-multisort

From: Date: Mon, 13 Jun 2005 06:48:39 +0000
Subject: note 53779 added to function.array-multisort
Groups: php.notes 
Request: Send a blank email to php-notes+get-90340@lists.php.net to get a copy of this message
If your data is in an associative array that you would need to separate into columns such as those retrieved with your favorite flavor of _fetch_array() in order to be able to use multisort(), you should consider using uasort() or usort() as an alternative. Here is an example of how this could be beneficial: (key is employee number which remains intact; rows are sorted by surname, firstname) <?php function namecmp( $row1,$row2 ) { $first = strcmp($row1['surname'], $row2['surname']) ; if ( $first ) return $first ; else return strcmp($row1['name'], $row2['name']) ; } $test = array( '11122202' => array('empno'=>11122202,'name'=>'geezer' ,'surname'=>'schmidt','age'=>96,'sex'=>'male') ,'11122204' => array('empno'=>11122204,'name'=>'coed' ,'surname'=>'beaujolais','age'=>18,'sex'=>'female') ,'11122206' => array('empno'=>11122206,'name'=>'immortal' ,'surname'=>'ramos','age'=>21,'sex'=>'male') ,'11122208' => array('empno'=>11122208,'name'=>'babyface' ,'surname'=>'brown','age'=>1,'sex'=>'male') ,'11122210' => array('empno'=>11122210,'name'=>'exjock' ,'surname'=>'gatti','age'=>48,'sex'=>'male') ,'11122212' => array('empno'=>11122212,'name'=>'jailbait' ,'surname'=>'muhammed','age'=>15,'sex'=>'female') ) ; echo "<pre>" ; print_r( $test ) ; uasort($test,'namecmp') ; echo "----sorting----<br \>"; print_r( $test ) ; echo "</pre>" ; ?> Array ( [11122202] => Array ( [empno] => 11122202 [name] => geezer [surname] => schmidt [age] => 96 [sex] => male ) [11122204] => Array ( [empno] => 11122204 [name] => coed [surname] => beaujolais [age] => 18 [sex] => female ) [11122206] => Array ( [empno] => 11122206 [name] => immortal [surname] => ramos [age] => 21 [sex] => male ) [11122208] => Array ( [empno] => 11122208 [name] => babyface [surname] => brown [age] => 1 [sex] => male ) [11122210] => Array ( [empno] => 11122210 [name] => exjock [surname] => gatti [age] => 48 [sex] => male ) [11122212] => Array ( [empno] => 11122212 [name] => jailbait [surname] => muhammed [age] => 15 [sex] => female ) ) ----sorting---- Array ( [11122204] => Array ( [empno] => 11122204 [name] => coed [surname] => beaujolais [age] => 18 [sex] => female ) [11122208] => Array ( [empno] => 11122208 [name] => babyface [surname] => brown [age] => 1 [sex] => male ) [11122210] => Array ( [empno] => 11122210 [name] => exjock [surname] => gatti [age] => 48 [sex] => male ) [11122212] => Array ( [empno] => 11122212 [name] => jailbait [surname] => muhammed [age] => 15 [sex] => female ) [11122206] => Array ( [empno] => 11122206 [name] => immortal [surname] => ramos [age] => 21 [sex] => male ) [11122202] => Array ( [empno] => 11122202 [name] => geezer [surname] => schmidt [age] => 96 [sex] => male ) ) ---- Manual Page -- http://www.php.net/manual/en/function.array-multisort.php Edit -- http://master.php.net/manage/user-notes.php?action=edit+53779 Delete: added to the manual -- http://master.php.net/manage/user-notes.php?action=delete+53779&report=yes&reason=added+to+the+manual Delete: bad code -- http://master.php.net/manage/user-notes.php?action=delete+53779&report=yes&reason=bad+code Delete: spam -- http://master.php.net/manage/user-notes.php?action=delete+53779&report=yes&reason=spam Delete: useless -- http://master.php.net/manage/user-notes.php?action=delete+53779&report=yes&reason=useless Delete: other reasons -- http://master.php.net/manage/user-notes.php?action=delete+53779&report=yes Reject -- http://master.php.net/manage/user-notes.php?action=reject+53779&report=yes Search -- http://master.php.net/manage/user-notes.php

« previous php.notes (#90340) next »