<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'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> => </span><span><span class="hljs-string">'a'</span></span><span>, </span><span><span class="hljs-number">1</span></span><span> => </span><span><span class="hljs-string">'b'</span></span><span>, </span><span><span class="hljs-number">2</span></span><span> => </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>);
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> => </span><span><span class="hljs-string">'a'</span></span><span>, </span><span><span class="hljs-string">'2'</span></span><span> => </span><span><span class="hljs-string">'b'</span></span><span>, </span><span><span class="hljs-string">'1'</span></span><span> => </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> => </span><span><span class="hljs-string">'a'</span></span><span>, </span><span><span class="hljs-string">'2'</span></span><span> => </span><span><span class="hljs-string">'b'</span></span><span>, </span><span><span class="hljs-string">'1'</span></span><span> => </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>);
De nombreux développeurs écrivent accidentellement krsort () comme ksort () lors de l'écriture de code. La différence entre les deux est:
Solution: faites attention à "R" dans le nom de la fonction (représente l'inverse, l'inversion) lors de l'écriture.
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>);
}
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.