note 93194 added to function.usort

From: Date: Thu, 27 Aug 2009 21:31:16 +0000
Subject: note 93194 added to function.usort
Groups: php.notes 
Request: Send a blank email to php-notes+get-159951@lists.php.net to get a copy of this message
An even better implementation of osort, allowing for multiple properties and directions: function osort(&$array, $props) { if(!is_array($props)) $props = array($props => true); usort($array, function($a, $b) use ($props) { foreach($props as $prop => $ascending) { if($a->$prop != $b->$prop) { if($ascending) return $a->$prop > $b->$prop ? 1 : -1; else return $b->$prop > $a->$prop ? 1 : -1; } } return -1; //if all props equal }); } Usage: osort($items, array("Color" => true, "Size" => false)); //or osort($items, "Color"); ---- Server IP: 209.41.74.194 Probable Submitter: 70.91.222.61 ---- Manual Page -- http://www.php.net/manual/en/function.usort.php Edit -- https://master.php.net/note/edit/93194 Del: integrated -- https://master.php.net/note/delete/93194/integrated Del: useless -- https://master.php.net/note/delete/93194/useless Del: bad code -- https://master.php.net/note/delete/93194/bad+code Del: spam -- https://master.php.net/note/delete/93194/spam Del: non-english -- https://master.php.net/note/delete/93194/non-english Del: in docs -- https://master.php.net/note/delete/93194/in+docs Del: other reasons-- https://master.php.net/note/delete/93194 Reject -- https://master.php.net/note/reject/93194 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#159951) next »