note 66219 modified in function.usort by thiago

From: Date: Tue, 22 Jul 2008 19:12:39 +0000
Subject: note 66219 modified in function.usort by thiago
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-142561@lists.php.net to get a copy of this message
<?php function arfsort($a,$fl){ $GLOBALS['__ARFSORT_LIST__'] = $fl; usort($a,'arfsort_func'); return $a; } function arfsort_func($a,$b) { foreach ($GLOBALS['__ARFSORT_LIST__'] as $f) { switch ($f[1]) { // switch on ascending or descending value case "d": ## Add number type sort if (is_numeric($a[$f[0]])) { if ($b[$f[0]] < $a[$f[0]]) $strc = -1; else if ($b[$f[0]] > $a[$f[0]]) $strc = 1; else $strc = 0; } else { $strc = strcmp($b[$f[0]],$a[$f[0]]); } if ( $strc != 0 ){ return $strc; } break; default: if (is_numeric($a[$f[0]])) { if ($b[$f[0]] > $a[$f[0]]) $strc = -1; else if ($b[$f[0]] < $a[$f[0]]) $strc = 1; else $strc = 0; } else { $strc = strcmp($a[$f[0]],$b[$f[0]]); } if ($strc != 0){ return $strc; } break; } } return 0; } ?> --was-- function arfsort($a,$fl){ $GLOBALS['__ARFSORT_LIST__'] = $fl; usort($a,'arfsort_func'); return $a; } function arfsort_func($a,$b) { foreach ($GLOBALS['__ARFSORT_LIST__'] as $f) { switch ($f[1]) { // switch on ascending or descending value case "d": ## Add number type sort if (is_numeric($a[$f[0]])) { if ($b[$f[0]] < $a[$f[0]]) $strc = -1; else if ($b[$f[0]] > $a[$f[0]]) $strc = 1; else $strc = 0; } else { $strc = strcmp($b[$f[0]],$a[$f[0]]); } if ( $strc != 0 ){ return $strc; } break; default: if (is_numeric($a[$f[0]])) { if ($b[$f[0]] > $a[$f[0]]) $strc = -1; else if ($b[$f[0]] < $a[$f[0]]) $strc = 1; else $strc = 0; } else { $strc = strcmp($a[$f[0]],$b[$f[0]]); } if ($strc != 0){ return $strc; } break; } } return 0; } http://php.net/manual/en/function.usort.php

« previous php.notes (#142561) next »