RE: [PHP] sorting multi-dimensional array

From: Date: Thu, 20 Feb 2003 18:50:29 +0000
Subject: RE: [PHP] sorting multi-dimensional array
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-136398@lists.php.net to get a copy of this message
This would work (and might still if I changed things), but the part that calls it is in another function also. Steve At 02:35 PM 2/20/2003 +0000, you wrote:
-----Original Message----- From: Steve Buehler [mailto:steve@vespro.com] Sent: 20 February 2003 05:25 Ahhh....finally did it with usort. Thanks to those who gave me that answer. Now here is a question for that. I would like to re-use my "cmp" function without having to rewrite it each time. Can it be written so that instead of "divname" being hard coded, that I can pass the sort field in the usort call. That way, I can either sort by "divname" and do another sort by "divid" for seperate results without having to have multiple "cmp" type functions. I hope that made since. Lack of sleep isn't good when programming. Below is my sorting code. function cmp ($a, $b) {
     return strcmp($a["divname"], $b["divname"]);
} usort($array, "cmp"); Well, the only obvious way I can think of is to use a global variable to set the array index you want to sort by -- something like: function cmp ($a, $b) {
      global $field;
      return strcmp($a[$field], $b[$field]);
} $field = "divname"; usort($array, "cmp"); $field = "divid"; usort($array, "cmp"); I haven't tested this, but I think it should work...! Cheers! Mike --------------------------------------------------------------------- Mike Ford, Electronic Information Services Adviser, Learning Support Services, Learning & Information Services, JG125, James Graham Building, Leeds Metropolitan University, Beckett Park, LEEDS, LS6 3QS, United Kingdom Email: m.ford@lmu.ac.uk
Tel: +44 113 283 2600 extn 4730      Fax:  +44 113 283 3211


« previous php.general (#136398) next »