diff --git a/GameEngine/Market.php b/GameEngine/Market.php index a1946dcf..23ef305f 100755 --- a/GameEngine/Market.php +++ b/GameEngine/Market.php @@ -290,7 +290,7 @@ class Market array_push($holderarray,$value); } } - $this->onsale = $multisort->sorte($holderarray, "'duration'", true, 2); + $this->onsale = $multisort->sorte($holderarray, "duration", true, 2); } private function filterNeed($get) diff --git a/GameEngine/Multisort.php b/GameEngine/Multisort.php index 8935c470..b762fee0 100755 --- a/GameEngine/Multisort.php +++ b/GameEngine/Multisort.php @@ -25,28 +25,30 @@ class multiSort { if($i + 2 < func_num_args()) $type = func_get_arg($i + 2); - switch($type) - { - case 1: // Case insensitive natural. - $t = 'strcasenatcmp($a[' . $key . '], $b[' . $key . '])'; - break; - case 2: // Numeric. - $t = '$a[' . $key . '] - $b[' . $key . ']'; - break; - case 3: // Case sensitive string. - $t = 'strcmp($a[' . $key . '], $b[' . $key . '])'; - break; - case 4: // Case insensitive string. - $t = 'strcasecmp($a[' . $key . '], $b[' . $key . '])'; - break; - default: // Case sensitive natural. - $t = 'strnatcmp($a[' . $key . '], $b[' . $key . '])'; - break; - } + $t = function($a, $b) use ($key) + { + switch($type) + { + case 1: // Case insensitive natural. + $result = strcasenatcmp($a[$key], $b[$key]); + break; + case 2: // Numeric. + $result = $a[$key] - $b[$key]; + break; + case 3: // Case sensitive string. + $result = strcmp($a[$key], $b[$key]); + break; + case 4: // Case insensitive string. + $result = strcasecmp($a[$key], $b[$key]); + break; + default: // Case sensitive natural. + $result = strnatcmp($a[$key], $b[ $key]); + break; + } + return $result*($order ? 1 : -1); + }; - usort($array, function($a, $b) use ($order, $t) { - return ($order ? '' : '-') . ($t); - }); + usort($array, $t); } return $array; } diff --git a/GameEngine/Ranking.php b/GameEngine/Ranking.php index b77b11cf..1ebe6dda 100755 --- a/GameEngine/Ranking.php +++ b/GameEngine/Ranking.php @@ -467,7 +467,7 @@ array_push($holder, $value); } - $holder = $multisort->sorte($holder, "'x'", true, 2, "'y'", true, 2, "'pop'", false, 2); + $holder = $multisort->sorte($holder, "x", true, 2, "y", true, 2, "pop", false, 2); $newholder = array("pad"); foreach($holder as $key) { array_push($newholder, $key); @@ -506,7 +506,7 @@ array_push($holder, $value); } - $holder = $multisort->sorte($holder, "'totalpop'", false, 2); + $holder = $multisort->sorte($holder, "totalpop", false, 2); $newholder = array("pad"); foreach($holder as $key) { array_push($newholder, $key); @@ -526,7 +526,7 @@ array_push($holder, $value); } - $holder = $multisort->sorte($holder, "'experience'", false, 2); + $holder = $multisort->sorte($holder, "experience", false, 2); $newholder = array("pad"); foreach($holder as $key) { array_push($newholder, $key); @@ -554,7 +554,7 @@ array_push($holder, $value); } - $holder = $multisort->sorte($holder, "'Aap'", false, 2); + $holder = $multisort->sorte($holder, "Aap", false, 2); $newholder = array("pad"); foreach($holder as $key) { array_push($newholder, $key); @@ -582,7 +582,7 @@ array_push($holder, $value); } - $holder = $multisort->sorte($holder, "'Adp'", false, 2); + $holder = $multisort->sorte($holder, "Adp", false, 2); $newholder = array("pad"); foreach($holder as $key) { array_push($newholder, $key);