note 111225 deleted from function.usort by googleguy

From: Date: Mon, 28 Jan 2013 21:20:12 +0000
Subject: note 111225 deleted from function.usort by googleguy
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-193416@lists.php.net to get a copy of this message
Note Submitter: matt at declaire dot com ---- stable usort function stable_usort(&$values, $compare_func) { // wrap items into pre-sorted-order/value pairs foreach ($values as $ndx => &$value) { $value = array( 'order' => $ndx, 'value' => $value, ); } // sort with callable, fallback to pre-sort order usort($values, function($a, $b) use($compare_func) { $compare = $compare_func($a['value'], $b['value']); if ($compare == 0) return $a['order'] < $b['order'] ? -1 : 1; return $compare; }); // unwrap items foreach ($values as &$value) { $value = $value['value']; } }

« previous php.notes (#193416) next »