Maison  >  Article  >  développement back-end  >  Comment trier un tableau par pinyin en php

Comment trier un tableau par pinyin en php

PHPz
PHPzoriginal
2023-04-18 09:46:56597parcourir

En programmation PHP, nous avons souvent besoin de trier des tableaux. Habituellement, PHP aura des problèmes pour trier les chaînes chinoises car les chaînes chinoises ne sont pas classées par ordre alphabétique. Par conséquent, lors du traitement des chaînes chinoises, nous devons convertir les chaînes, convertir les chaînes chinoises en Pinyin, puis les trier. Alors, comment PHP trie-t-il le tableau par pinyin ? Présentons-le en détail ci-dessous.

  1. Préparation :

En PHP, on peut utiliser l'extension pinyin pour convertir des chaînes chinoises en Pinyin. Tout d'abord, vous devez installer l'extension pinyin. Vous pouvez l'installer via la commande suivante :

pecl install pinyin

Une fois l'installation terminée, ajoutez le contenu suivant au fichier php.ini :

extension=pinyin.so

Redémarrez ensuite le service PHP et vous pourrez utilisez l'extension pinyin.

  1. Tri par tableau :

Supposons que nous ayons un tableau contenant plusieurs chaînes chinoises. Nous devons maintenant trier ce tableau selon l'ordre piny des chaînes chinoises. On peut utiliser la fonction usort fournie par PHP, qui accepte deux paramètres : un tableau trié et une fonction de rappel triée.

Tout d'abord, nous devons écrire une fonction de rappel, qui acceptera deux paramètres $a et $b, représentant les deux éléments qui doivent être comparés. La fonction doit renvoyer une valeur entière représentant la relation de taille entre $a et $b. Renvoie un entier supérieur à 0 si $a est supérieur à $b ; renvoie un entier inférieur à 0 si $a est inférieur à $b ; renvoie 0 si $a est égal à $b. Voici un exemple :

function cmp($a, $b)
{
    $py_a = pinyin($a); // 转换成拼音
    $py_b = pinyin($b);
    return strcmp($py_a, $py_b); // 比较拼音
}

Dans le code ci-dessus, nous utilisons d'abord la fonction pinyin pour convertir la chaîne chinoise en pinyin, puis utilisons la fonction strcmp pour comparer la relation de taille du pinyin.

Ensuite, nous pouvons utiliser la fonction usort pour trier le tableau, comme indiqué ci-dessous :

$array = array("张三", "李四", "王五", "赵六");
usort($array, "cmp"); // 按拼音排序
print_r($array); // 输出结果

Dans le code ci-dessus, nous définissons d'abord un tableau $array contenant plusieurs chaînes chinoises, puis utilisons la fonction usort pour trier le tableau, la fonction de rappel de tri est la fonction cmp que nous avons définie ci-dessus. Enfin, nous utilisons la fonction print_r pour afficher les résultats triés.

  1. Résumé

En convertissant les chaînes chinoises en Pinyin, nous pouvons facilement trier le tableau. PHP fournit l'extension pinyin pour convertir les chaînes chinoises en pinyin. En utilisant la fonction de rappel en conjonction avec la fonction usort, le tableau peut être trié en fonction du pinyin. Cela a une grande valeur pratique dans le développement de programmes PHP.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn