To create a natural reverse sorting by keys, use the following function:
<?php
function natkrsort($array)
{
$keys = array_keys($array);
natsort($keys);
foreach ($keys as $k)
{
$new_array[$k] = $array[$k];
}
$new_array = array_reverse($new_array, true);
return $new_array;
}
?>
krsort
(PHP 4, PHP 5)
krsort — Sortiert ein Array nach Schlüsseln in umgekehrter Reihenfolge
Beschreibung
bool krsort
( array &$array
[, int $sort_flags
] )
Sortiert ein Array nach Schlüsseln in umgekehrter Reihenfolge, wobei die Zuordnungen zwischen Schlüssel und Wert erhalten bleiben. Dies ist hauptsächlich bei assoziativen Arrays hilfreich.
Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.
Beispiel #1 krsort()
<?php
$fruits = array("d"=>"Zitrone", "a"=>"Orange", "b"=>"Banane", "c"=>"Apfel");
krsort ($fruits);
foreach ($fruits as $key => $val) {
echo "$key = $val\n";
}
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
d = Zitrone c = Apfel b = Banane a = Orange
Sie können das Verhalten der Sortierung mittels dem optionalen Parameter sort_flags beeinflussen, für Details siehe sort().
Siehe auch asort(), arsort(), ksort(), sort(), natsort() und rsort().
krsort
07-Aug-2005 06:37
peter at pmkmedia dot com
07-Nov-2003 01:51
07-Nov-2003 01:51
Best deal sorting:
This is a function that will sort an array with integer keys (weight) and float values (cost) and delete 'bad deals' - entries that are more costly than other entries that have greater or equal weight.
Input: an array of unsorted weight/cost pairs
Output: none
function BEST_DEALS($myarray)
{ // most weight for least cost:
// © Peter Kionga-Kamau, http://www.pmkmedia.com
// thanks to Nafeh for the reversal trick
// free for unrestricted use.
krsort($myarray, SORT_NUMERIC);
while(list($weight, $cost) = each($myarray))
{ // delete bad deals, retain best deals:
if(!$lastweight)
{
$lastweight=$weight;
$lastcost = $cost;
}
else if($cost >= $lastcost) unset($myarray[$weight]);
else
{
$lastweight=$weight;
$lastcost = $cost;
}
}
ksort($myarray);
}
lolo at phpheaven dot net
28-Nov-2000 12:33
28-Nov-2000 12:33
If you want to emulate the krsort function for an older version of php, you can use this piece of code:
function KeyComp($a, $b)
{
return -(strcmp($a,$b));
}
function krsort($MyArray)
{
uksort($MyArray, "KeyComp");
}
Maybe obvious and useless, but who knows...
