En PHP, nous utilisons souvent diverses fonctions de tri pour trier les tableaux. RSORT () est l'une des fonctions communes qui sont utilisées pour inverser les tableaux de tri (du grand à petit). Cependant, de nombreux développeurs ont constaté qu'après avoir utilisé RSORT () , le nom de clé du tableau sera réinitialisé et le nom de clé d'origine sera perdu. Cela entraînera que de nombreuses personnes ont du mal à faire face aux tableaux associatifs.
RSORT () est une fonction conçue spécifiquement pour trier les tableaux d'index (touches numériques). Il reconstruit l'index du tableau , c'est-à-dire qu'il indexe automatiquement à partir de 0. Il ne conserve pas le nom de clé d'origine car il est conçu pour trier les valeurs et générer des index numériques continus.
En termes simples, RSORT () est trié par valeur et réindexation des tableaux , adaptés aux tableaux numériques ordinaires.
Par exemple:
<?php
$arr = [
'a' => 3,
'b' => 1,
'c' => 2
];
rsort($arr);
print_r($arr);
?>
Le résultat de la sortie est:
Array
(
[0] => 3
[1] => 2
[2] => 1
)
Comme vous pouvez le voir, les noms de clés d'origine «A», «B», «C» ont complètement disparu et sont devenus un index numérique continu.
Si nous devons trier les tableaux avec des noms de clés et garder les noms de clés inchangés, nous pouvons considérer ce qui suit:
Arsort () est une fonction avec des noms de clés associés. Il peut inverser les valeurs de tableau de tri et garder les noms de clés inchangés.
Exemple:
<?php
$arr = [
'a' => 3,
'b' => 1,
'c' => 2
];
arsort($arr);
print_r($arr);
?>
Sortir:
Array
(
[a] => 3
[c] => 2
[b] => 1
)
De cette façon, les noms de clés a, b, c sont préservés intacts.
Si vous avez besoin de personnaliser le collation, vous pouvez utiliser uasort () , qui maintient également le nom de clé inchangé.
<?php
$arr = [
'a' => 3,
'b' => 1,
'c' => 2
];
uasort($arr, function($x, $y) {
return $y <=> $x; // Tri inversé
});
print_r($arr);
?>
Sortir:
Array
(
[a] => 3
[c] => 2
[b] => 1
)
Si la structure du tableau est légèrement complexe, vous pouvez extraire des paires de valeurs clés et les trier avant de construire le tableau.
RSORT () perdra le nom de clé car il réindexait le tableau, adapté au tri normal du tableau d'index.
Si vous devez garder le nom de clé, vous devez utiliser Arsort () ou UaSort () .
Arsort () inverse directement les valeurs et préserve les noms de clés.
UaSort () peut personnaliser la logique de tri et avoir une flexibilité plus élevée.
La maîtrise des différences et des utilisations de ces fonctions peut rendre votre tri PHP le tri plus efficace et éviter les problèmes causés par les noms de clés manquants.
<?php
// Un exemple complet de cette incorporation de ce qui précède
$arr = [
'a' => 3,
'b' => 1,
'c' => 2
];
// Démonstration d'erreur:rsortLe nom clé sera perdu
rsort($arr);
print_r($arr);
echo "\n";
// Démonstration correcte:utiliserarsort保持键名Tri inversé
$arr = [
'a' => 3,
'b' => 1,
'c' => 2
];
arsort($arr);
print_r($arr);
echo "\n";
// Démonstration de tri personnalisée uasort
$arr = [
'a' => 3,
'b' => 1,
'c' => 2
];
uasort($arr, function($x, $y) {
return $y <=> $x; // Tri inversé
});
print_r($arr);
?>
Pour plus de conseils de tri PHP Array, veuillez vous référer à gitbox.net/docs/php-arrays .