Position actuelle: Accueil> Derniers articles> Erreurs courantes que vous pouvez rencontrer lors de l'utilisation de la fonction KRSORT et des solutions

Erreurs courantes que vous pouvez rencontrer lors de l'utilisation de la fonction KRSORT et des solutions

gitbox 2025-09-12
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Ce fichier est un exemple,Montrer un article sur PHP milieu krsort Article d&#39;utilisation des fonctions</span></span><span>
</span><span><span class="hljs-comment">// Le code ou les commentaires qui ne sont pas liés au corps sont écrits ici</span></span><span>
</span><span><span class="hljs-comment">// ------------------------------</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>

<hr>

<h1>utiliser krsort Erreurs communes qui peuvent être rencontrées lors du fonctionnement et des solutions</h1>

<p>exister PHP milieu,<code></span><span><span class="hljs-title function_ invoke__">krsort</span></span><span>()

Vous constaterez que la valeur de $ triée est de type booléen ( true / false ), pas un tableau trié. La raison en est que Krsort () renvoie une valeur booléenne qui réussit ou non.

Solution: utilisez simplement le tableau d'origine:

 </span><span><span class="hljs-variable">$arr</span></span><span> = [</span><span><span class="hljs-number">3</span></span><span> =&gt; </span><span><span class="hljs-string">'a'</span></span><span>, </span><span><span class="hljs-number">1</span></span><span> =&gt; </span><span><span class="hljs-string">'b'</span></span><span>, </span><span><span class="hljs-number">2</span></span><span> =&gt; </span><span><span class="hljs-string">'c'</span></span><span>];
</span><span><span class="hljs-title function_ invoke__">krsort</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>);

2. Ignorez les paramètres de type de tri

Le deuxième paramètre de KRSORT () peut contrôler les règles de commande. Par exemple, par défaut, c'est la constante Sort_Regular , c'est-à-dire que les noms de clés sont comparés de la manière habituelle. Si le nom de clé du tableau est une chaîne et contient des nombres, le résultat peut parfois ne pas correspondre aux attentes.

Exemple:

 </span><span><span class="hljs-variable">$arr</span></span><span> = [</span><span><span class="hljs-string">'10'</span></span><span> =&gt; </span><span><span class="hljs-string">'a'</span></span><span>, </span><span><span class="hljs-string">'2'</span></span><span> =&gt; </span><span><span class="hljs-string">'b'</span></span><span>, </span><span><span class="hljs-string">'1'</span></span><span> =&gt; </span><span><span class="hljs-string">'c'</span></span><span>];
</span><span><span class="hljs-title function_ invoke__">krsort</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>);

La sortie peut supposer à tort qu'il n'y a pas de tri correct. En effet, la règle de comparaison compare les nombres sous forme de chaîne sous forme de chaînes.

Solution: spécifiez explicitement la collation, comme SORT_NUMERIC :

 </span><span><span class="hljs-variable">$arr</span></span><span> = [</span><span><span class="hljs-string">'10'</span></span><span> =&gt; </span><span><span class="hljs-string">'a'</span></span><span>, </span><span><span class="hljs-string">'2'</span></span><span> =&gt; </span><span><span class="hljs-string">'b'</span></span><span>, </span><span><span class="hljs-string">'1'</span></span><span> =&gt; </span><span><span class="hljs-string">'c'</span></span><span>];
</span><span><span class="hljs-title function_ invoke__">krsort</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>, SORT_NUMERIC);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>);

3. Confus avec ksort ()

De nombreux développeurs écrivent accidentellement krsort () comme ksort () lors de l'écriture de code. La différence entre les deux est:

  • ksort () : trié par ordre croissant de noms de clés
  • krsort () : trié dans l'ordre descendant des noms de clés

Solution: faites attention à "R" dans le nom de la fonction (représente l'inverse, l'inversion) lors de l'écriture.

4. Appeler les variables sans réseau

Si vous utilisez accidentellement KRSORT () sur les variables non-terrassement, une erreur sera déclenchée:

 </span><span><span class="hljs-variable">$var</span></span><span> = </span><span><span class="hljs-string">'string'</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">krsort</span></span><span>(</span><span><span class="hljs-variable">$var</span></span><span>);

Solution: vérifiez le type de variable avant d'appeler:

 </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">is_array</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>)) {
    </span><span><span class="hljs-title function_ invoke__">krsort</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>);
}

Conclusion

Krsort () est une fonction de tri simple mais très pratique. Comprendre ses caractéristiques comportementales et éviter les malentendus courants peut nous aider plus efficacement et avec précision lors du traitement des tableaux. Dans le développement réel, en plus de prêter attention à la valeur de retour et au type de tri, il est également nécessaire d'éviter la confusion avec d'autres fonctions de tri, réduisant ainsi le temps de débogage inutile.