Dans PHP, KRSORT () est une fonction de tri très courante utilisée pour trier les tableaux dans l'ordre inverse des noms de clés. De nombreux développeurs peuvent avoir une question lors de l'utilisation de KRSORT () : Les noms clés du tableau PHP seront-ils réindexés après le tri? Dans cet article, nous discuterons de cette question en détail et comprendrons les règles derrière Krsort () .
La fonction de la fonction krsort () est de trier le tableau dans l'ordre inverse des noms de clés du tableau. Il conserve la relation de mappage entre le nom de clé et la valeur correspondante et prend en charge divers indicateurs de tri. Les méthodes d'utilisation de base sont les suivantes:
<?php
$array = [
"apple" => 3,
"banana" => 2,
"cherry" => 5
];
krsort($array);
print_r($array);
?>
Après avoir exécuté le code ci-dessus, le tableau de sortie sera trié dans l'ordre inverse des noms de clés:
Array
(
[cherry] => 5
[banana] => 2
[apple] => 3
)
Comme vous pouvez le voir, le tableau est organisé dans l'ordre inverse en fonction des noms de clés.
Une caractéristique importante du tri de Krsort () est qu'elle ne réindexent pas les noms de clés du tableau. Cela signifie que si les noms de clés du tableau sont discontinus, les noms clés du tableau resteront comme ils le sont après Krsort () . En d'autres termes, Krsort () trie simplement les noms clés de l'ordre inverse du tableau et ne modifie pas le type des noms de clés ou leur ordre d'origine.
<?php
$array = [
1 => "apple",
3 => "banana",
2 => "cherry"
];
krsort($array);
print_r($array);
?>
Le résultat de la sortie est:
Array
(
[3] => banana
[2] => cherry
[1] => apple
)
Dans cet exemple, bien que les noms de clés du tableau soient organisés dans l'ordre inverse, les noms de clés 1 , 2 , 3 restent inchangés et ne sont pas réindexés.
Les noms de clés des tableaux PHP peuvent être de type entier ou de chaîne. Lorsque vous triez un tableau à l'aide de krsort () , il ne réorganise pas ces noms de clés, mais les organise simplement dans l'ordre inverse par la valeur du nom de clé . Les fonctions de tri PHP, telles que KRSORT () , ne modifient pas le nom de clé du tableau par défaut, sauf si vous demandez explicitement un Reindex.
Si vous souhaitez reconstruire des noms de clés entiers consécutifs après avoir triage le tableau, vous pouvez utiliser la fonction Array_Values () , qui rejettera tous les noms de clés dans le tableau et régénérer l'index à partir de 0 :
<?php
$array = [
1 => "apple",
3 => "banana",
2 => "cherry"
];
krsort($array);
$array = array_values($array);
print_r($array);
?>
Le résultat de la sortie est:
Array
(
[0] => banana
[1] => cherry
[2] => apple
)
De cette façon, vous obtenez un tableau réindexé avec les noms de clés à partir de 0 .
La fonction KRSORT () prend également en charge un paramètre Flag en option. Ce paramètre vous permet de contrôler plus attentivement la méthode de tri, comme l'utilisation de Sort_string pour trier l'ordre du dictionnaire, ou l'utilisation de Sort_numeric pour trier l'ordre numérique. Les usages courants sont les suivants:
<?php
$array = [
"10" => "apple",
"2" => "banana",
"30" => "cherry"
];
krsort($array, SORT_NUMERIC);
print_r($array);
?>
Le résultat de la sortie est:
Array
(
[30] => cherry
[10] => apple
[2] => banana
)
Dans cet exemple, nous trierons les noms de clés dans l'ordre inverse par taille numérique par Sort_numeric .
Lors du tri avec krsort () , les noms de clés du tableau PHP ne sont pas réindexés. KRSORT () organise simplement le tableau dans l'ordre inverse en fonction de la valeur du nom de clé, et les noms de clés du tableau restent inchangés. Si vous souhaitez obtenir un tableau continu et réindexé, vous pouvez utiliser la fonction array_values () . Après avoir compris ces règles, vous pouvez contrôler de manière plus flexible le tri des tableaux PHP et le traitement des noms de clés.
Si vous avez des questions ou avez besoin de plus d'exemples, n'hésitez pas à demander.