Position actuelle: Accueil> Derniers articles> Comment trier les tableaux par longueur de chaîne en utilisant RSORT? Comment dois-je l'écrire en php?

Comment trier les tableaux par longueur de chaîne en utilisant RSORT? Comment dois-je l'écrire en php?

gitbox 2025-09-11

Dans PHP, la fonction RSORT () est généralement utilisée pour trier les tableaux dans l'ordre descendant, mais il trie par défaut par la valeur des éléments du tableau. Si nous voulons trier les tableaux par la longueur de la chaîne, RSORT () ne peut pas implémenter directement cette exigence. Pour trier le tableau par longueur de chaîne, nous pouvons utiliser USORT () et une fonction de comparaison personnalisée, ou calculer la longueur de la chaîne avant de le tri et le traiter.

Cet article présentera comment trier les tableaux par longueur de chaîne à l'aide de RSORT () et donnera des exemples de code et des explications.

Trier par ordre décroissant de longueur de chaîne à l'aide de rsort () combiné avec strlen ()

La première chose à comprendre est que RSORT () ne peut pas être trié directement en fonction de la longueur de la chaîne, et il est trié en fonction des valeurs des éléments du tableau. Nous devons donc utiliser usort () pour atteindre le tri par longueur de chaîne.

Cependant, USORT () lui-même trie l'ordre croissant du tableau. Nous pouvons personnaliser une fonction de comparaison, qui se comparera en fonction de la longueur de la chaîne, réalisant ainsi le tri par longueur. Nous pouvons également définir la méthode de tri pour descendre pour obtenir des effets similaires à RSORT () .

Exemple de code:

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Exemple de tableau</span></span><span>
</span><span><span class="hljs-variable">$array</span></span><span> = [</span><span><span class="hljs-string">"apple"</span></span><span>, </span><span><span class="hljs-string">"banana"</span></span><span>, </span><span><span class="hljs-string">"kiwi"</span></span><span>, </span><span><span class="hljs-string">"grapes"</span></span><span>, </span><span><span class="hljs-string">"strawberry"</span></span><span>];

</span><span><span class="hljs-comment">// Fonctions de comparaison personnalisées,Trier par longueur de chaîne</span></span><span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">compareByLength</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$a</span></span></span><span>, </span><span><span class="hljs-variable">$b</span></span><span>) {
    </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">strlen</span></span><span>(</span><span><span class="hljs-variable">$b</span></span><span>) - </span><span><span class="hljs-title function_ invoke__">strlen</span></span><span>(</span><span><span class="hljs-variable">$a</span></span><span>);  </span><span><span class="hljs-comment">// Trier en ordre décroissant</span></span><span>
}

</span><span><span class="hljs-comment">// utiliser usort 和Fonctions de comparaison personnalisées排序</span></span><span>
</span><span><span class="hljs-title function_ invoke__">usort</span></span><span>(</span><span><span class="hljs-variable">$array</span></span><span>, </span><span><span class="hljs-string">'compareByLength'</span></span><span>);

</span><span><span class="hljs-comment">// Tableau trié de sortie</span></span><span>
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$array</span></span><span>);
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Analyse de code:

  1. Définition d'un tableau : nous définissons d'abord un tableau de tableau $ contenant différents noms de fruits, qui contient des chaînes de différentes longueurs.

  2. Fonction de comparaison personnalisée : CompareByLength () est une fonction de comparaison personnalisée, qui est utilisée pour comparer les longueurs de deux chaînes. Ici, nous utilisons strlen ($ b) - strlen ($ a) pour atteindre l'ordre descendant de la longueur. La fonction strlen () renvoie la longueur de la chaîne. $ b et $ a sont deux chaînes à comparer respectivement. Lorsque la valeur de retour est un nombre positif, cela signifie que la durée de $ B est supérieure à $ A , et vice versa.

  3. Tri Array : la fonction usort () est utilisée pour trier le tableau, et les règles de commande sont déterminées par la fonction de comparaison dans laquelle nous avons adopté.

  4. Résultat de tri de sortie : Enfin, utilisez print_r () pour sortir le tableau trié, et les résultats seront organisés de long à court par longueur de chaîne.

Trier les résultats:

Après avoir exécuté le code ci-dessus, la sortie sera:

 <span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
    [</span><span><span class="hljs-number">0</span></span><span>] =&gt; strawberry
    [</span><span><span class="hljs-number">1</span></span><span>] =&gt; banana
    [</span><span><span class="hljs-number">2</span></span><span>] =&gt; grapes
    [</span><span><span class="hljs-number">3</span></span><span>] =&gt; apple
    [</span><span><span class="hljs-number">4</span></span><span>] =&gt; kiwi
)
</span></span>

Comme vous pouvez le voir, des éléments avec de longues longueurs de chaîne sont devant lui.

Résumer

Bien que RSORT () lui-même ne puisse pas être trié directement par longueur de chaîne, nous pouvons réaliser cette exigence par des fonctions de comparaison personnalisées et USORT () . Calculez la longueur de la chaîne en comparant strlen () dans la fonction, afin de trier le tableau par longueur. Cette méthode maintient non seulement l'ordre descendant de RSORT () , mais trie également de manière flexible les éléments de tableau en fonction des besoins.

J'espère que cette méthode peut vous aider à mieux manipuler des tableaux en PHP!