Comment utiliser StrnatCMP pour le tri naturel dans les sites Web multilingues pour améliorer l'expérience utilisateur?
L'expérience utilisateur est cruciale lors de la création de sites Web multilingues. Afin de rendre le site Web plus convivial et plus intuitif, en particulier lors de l'affichage des listes ou des répertoires, la méthode de tri affecte directement l'efficacité de navigation de l'utilisateur et l'expérience globale. L'ordre traditionnel du dictionnaire peut ne pas être intuitif pour un contenu, en particulier lors de la contenu des chaînes de nombres et de lettres mixtes. Pour ce faire, l'utilisation de la fonction strnatcmp pour le «tri naturel» devient une solution idéale.
Le tri naturel, comme son nom l'indique, est de trier les chaînes en fonction des habitudes de lecture humaines. Par exemple, pour les chaînes "Apple2" et "Apple10", le tri du dictionnaire traditionnel précédera "Apple10" car il est comparé par le caractère de lettre. Mais les humains pensent généralement que "Apple2" devrait être en avance sur "Apple10". Le tri naturel prendra en compte la taille et la position des nombres, ce qui rend le tri plus conforme à l'intuition humaine.
StrnatCMP est une fonction de comparaison de chaînes dans PHP qui peut implémenter le tri naturel. Cette fonction est similaire à StrCMP , mais contrairement à ce dernier, il y traite automatiquement les parties numériques lors de la comparaison des chaînes pour se conformer aux règles du tri naturel. Plus précisément, lorsque StrnatCMP compare deux chaînes, il traite les nombres dans son ensemble, plutôt que comme une comparaison caractéristique par personnage.
En PHP, l'utilisation de Strnatcmp est très simple. La syntaxe est la suivante:
<span><span><span class="hljs-title function_ invoke__">strnatcmp</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$string1</span></span><span>, </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$string2</span></span><span>): </span><span><span class="hljs-keyword">int</span></span><span>
</span></span>
$ string1 : la première chaîne
$ string2 : la deuxième chaîne
Valeur de retour:
Moins de 0: si $ string1 est en avance sur $ string2
Supérieur à 0: si $ string1 est classé après $ string2
Égal à 0: si deux chaînes sont égales
Supposons que nous ayons un site Web multilingue avec des titres d'articles dans différentes langues. Nous voulons afficher ces listes de titre dans un ordre naturel. Avant StrnatCMP , le tri par défaut du dictionnaire par défaut peut entraîner la disposition mixte des nombres et des lettres, ce qui n'est pas suffisamment intuitif. Avec StrnatCMP, nous pouvons nous assurer que les parties numériques sont triées par la compréhension humaine.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Supposons que ce soit le tableau de titre sur notre site Web,Contient différents nombres</span></span><span>
</span><span><span class="hljs-variable">$titles</span></span><span> = [
</span><span><span class="hljs-string">"Article 10: PHP Introduction"</span></span><span>,
</span><span><span class="hljs-string">"Article 2: HTML Basics"</span></span><span>,
</span><span><span class="hljs-string">"Article 1: CSS Fundamentals"</span></span><span>,
</span><span><span class="hljs-string">"Article 11: JavaScript Essentials"</span></span><span>,
</span><span><span class="hljs-string">"Article 3: Python for Beginners"</span></span><span>
];
</span><span><span class="hljs-comment">// utiliser uasort Combinaison de fonctions strnatcmp Commandez le titre naturellement</span></span><span>
</span><span><span class="hljs-title function_ invoke__">uasort</span></span><span>(</span><span><span class="hljs-variable">$titles</span></span><span>, </span><span><span class="hljs-string">'strnatcmp'</span></span><span>);
</span><span><span class="hljs-comment">// Résultats triés de sortie</span></span><span>
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$titles</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$title</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$title</span></span><span> . </span><span><span class="hljs-string">"<br>"</span></span><span>;
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
Nous créons un tableau de titres $ titres où chaque titre contient des numéros.
Utilisez la fonction Uasort pour trier le tableau. UaSort gardera les clés du tableau inchangé et les triera en fonction de la fonction de comparaison spécifiée (il s'agit de strnatcmp ).
Enfin, utilisez la boucle foreach pour produire les résultats triés.
La sortie triée sera organisée par ordre naturel, par exemple:
<span><span><span class="hljs-selector-tag">Article</span></span><span> </span><span><span class="hljs-number">1</span></span><span>: </span><span><span class="hljs-selector-tag">CSS</span></span><span> </span><span><span class="hljs-selector-tag">Fundamentals</span></span><span>
</span><span><span class="hljs-selector-tag">Article</span></span><span> </span><span><span class="hljs-number">2</span></span><span>: </span><span><span class="hljs-selector-tag">HTML</span></span><span> </span><span><span class="hljs-selector-tag">Basics</span></span><span>
</span><span><span class="hljs-selector-tag">Article</span></span><span> </span><span><span class="hljs-number">3</span></span><span>: </span><span><span class="hljs-selector-tag">Python</span></span><span> </span><span><span class="hljs-selector-tag">for</span></span><span> </span><span><span class="hljs-selector-tag">Beginners</span></span><span>
</span><span><span class="hljs-selector-tag">Article</span></span><span> </span><span><span class="hljs-number">10</span></span><span>: </span><span><span class="hljs-selector-tag">PHP</span></span><span> </span><span><span class="hljs-selector-tag">Introduction</span></span><span>
</span><span><span class="hljs-selector-tag">Article</span></span><span> </span><span><span class="hljs-number">11</span></span><span>: </span><span><span class="hljs-selector-tag">JavaScript</span></span><span> </span><span><span class="hljs-selector-tag">Essentials</span></span><span>
</span></span>
Dans les sites Web multilingues, les titres peuvent contenir du vocabulaire et des nombres dans différentes langues. En utilisant StrnatCMP, nous pouvons nous assurer que le contenu dans toutes les langues peut être trié par ordre naturel sans tri les problèmes en raison de l'encodage des caractères ou des différences de langage. Par exemple, StrnatCMP peut être trié comme l'attend l'utilisateur.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Supposons qu'il s'agit d'un tableau de titre dans un site Web multilingue</span></span><span>
</span><span><span class="hljs-variable">$titles</span></span><span> = [
</span><span><span class="hljs-string">"article 2: PHPIntroduction"</span></span><span>, </span><span><span class="hljs-comment">// Chinois</span></span><span>
</span><span><span class="hljs-string">"Article 10: Introduction to PHP"</span></span><span>, </span><span><span class="hljs-comment">// Anglais</span></span><span>
</span><span><span class="hljs-string">"Article 1: HTML Basics"</span></span><span>, </span><span><span class="hljs-comment">// Anglais</span></span><span>
</span><span><span class="hljs-string">"Article 3: Python for Beginners"</span></span><span>, </span><span><span class="hljs-comment">// Anglais</span></span><span>
</span><span><span class="hljs-string">"article 1: CSSBase"</span></span><span> </span><span><span class="hljs-comment">// Chinois</span></span><span>
];
</span><span><span class="hljs-comment">// utiliser uasort Combinaison de fonctions strnatcmp Commandez le titre naturellement</span></span><span>
</span><span><span class="hljs-title function_ invoke__">uasort</span></span><span>(</span><span><span class="hljs-variable">$titles</span></span><span>, </span><span><span class="hljs-string">'strnatcmp'</span></span><span>);
</span><span><span class="hljs-comment">// Résultats triés de sortie</span></span><span>
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$titles</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$title</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$title</span></span><span> . </span><span><span class="hljs-string">"<br>"</span></span><span>;
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
<span><span><span class="hljs-attr">Article 1:</span></span><span> </span><span><span class="hljs-string">HTML</span></span><span> </span><span><span class="hljs-string">Basics</span></span><span>
</span><span><span class="hljs-attr">Article 3:</span></span><span> </span><span><span class="hljs-string">Python</span></span><span> </span><span><span class="hljs-string">for</span></span><span> </span><span><span class="hljs-string">Beginners</span></span><span>
</span><span><span class="hljs-attr">Article 10:</span></span><span> </span><span><span class="hljs-string">Introduction</span></span><span> </span><span><span class="hljs-string">to</span></span><span> </span><span><span class="hljs-string">PHP</span></span><span>
</span><span><span class="hljs-string">article</span></span><span> </span><span><span class="hljs-attr">1:</span></span><span> </span><span><span class="hljs-string">CSSBase</span></span><span>
</span><span><span class="hljs-string">article</span></span><span> </span><span><span class="hljs-attr">2:</span></span><span> </span><span><span class="hljs-string">PHPIntroduction</span></span><span>
</span></span>
Résultats de tri intuitifs : les utilisateurs ne veulent souvent pas voir le classement "Apple10" devant "Apple2". StranAtCMP peut éviter cette situation et assurer le tri naturel des parties numériques.
Améliorer la convivialité du site Web : pour les sites Web multilingues, en particulier le contenu qui contient des nombres et du texte mixtes, StrnatCMP peut s'assurer que la commande est conforme aux habitudes de lecture de l'utilisateur, que ce soit en chinois, en anglais ou dans d'autres langues.
Simplifier le processus de développement : pendant le processus de développement, l'utilisation de StrnatCMP peut éviter d'écrire manuellement des algorithmes de tri complexe, de gagner du temps et d'améliorer l'efficacité du développement.
StrnatCMP est un outil très puissant qui peut aider les développeurs PHP à réaliser un tri naturel dans des sites Web multilingues. Grâce à cette fonction, les développeurs peuvent s'assurer que le contenu est trié en fonction des sentiments intuitifs de l'utilisateur, que ce soit dans une liste, un répertoire ou un titre multilingue, il améliorera considérablement l'expérience de navigation de l'utilisateur.