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 — Trie un tableau en sens inverse et suivant les clés
Description
bool krsort
( array &$array
[, int $sort_flags = SORT_REGULAR
] )
krsort() trie le tableau array en ordre inverse et suivant les clés, en maintenant la correspondance entre les clés et les valeurs. Cette fonction est pratique pour les tableaux associatifs.
Liste de paramètres
- array
-
Le tableau d'entrée.
- sort_flags
-
Vous pouvez modifier le comportement de cette fonction en utilisant le paramètre optionnel sort_flags. Pour plus de détails, voyez le manuel pour la fonction sort().
Valeurs de retour
Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.
Exemples
Exemple #1 Exemple avec krsort()
<?php
$fruits = array("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple");
krsort($fruits);
foreach ($fruits as $key => $val) {
echo "$key = $val\n";
}
?>
L'exemple ci-dessus va afficher :
d = lemon c = apple b = banana a = orange
Voir aussi
- arsort() - Trie un tableau en ordre inverse
- ksort() - Trie un tableau suivant les clés
- Les fonctions de tri des tableaux
07-Aug-2005 06:37
peter at pmkmedia dot com
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
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...
