We can sort arrays according to user-specified methods by passing in a user-defined comparison function.
<?php function CompareModulus19($iM, $iN) { $iM19 = ($iM % 19); $iN19 = ($iN % 19); if ($iM19 == $iN19) { return 0; } return ($iM19 < $iN19) ? -1 : 1; } // Create an array of numbers $saNumbers = array(109, 67, 38, 12, 90, 65, 42); echo "<h1>User-defined Sorting:</h1>"; // Use a foreach loop to print each key with its value echo "<h3>Original Order:</h3>"; foreach ($saNumbers as $sKey => $sValue) { echo "{$sKey} => {$sValue}<br />"; } echo "<br />"; sort($saNumbers); // Use a foreach loop to print each key with its value echo "<h3>Numerical Sort Order:</h3>"; foreach ($saNumbers as $sKey => $sValue) { echo "{$sKey} => {$sValue}<br />"; } echo "<br />"; usort($saNumbers, "CompareModulus19"); // Use a foreach loop to print each key with its value echo "<h3>Modulus 19 Sort Order:</h3>"; foreach ($saNumbers as $sKey => $sValue) { echo "{$sKey} => {$sValue} ≡ ".($sValue % 19)." (Mod 19)<br />"; } echo "<br />"; ?>
© 20072024 XoaX.net LLC. All rights reserved.