Maison >développement back-end >Problème PHP >Chaîne PHP chinoise et anglaise vers un tableau

Chaîne PHP chinoise et anglaise vers un tableau

王林
王林original
2023-05-19 19:13:05601parcourir

En PHP, nous avons parfois besoin de convertir une chaîne en tableau. Lorsqu'une chaîne contient des mots anglais ou des caractères chinois, nous devrons peut-être la diviser en éléments de tableau. Ici, cet article présentera en détail comment convertir des chaînes chinoises et anglaises en tableaux.

Tout d'abord, voyons comment diviser une chaîne en éléments de tableau en PHP. Ceci peut être réalisé en utilisant la fonction éclater() en PHP :

$str = "Hello World";
$arr = explode(" ", $str);
print_r($arr);

Le résultat de sortie de ce programme est :

Array
(
    [0] => Hello
    [1] => World
)

Dans le programme ci-dessus, les espaces sont utilisés comme séparateurs pour entrez la chaîne dispersée en éléments du tableau. Parmi eux, le premier paramètre de la fonction éclater() spécifie le séparateur et le deuxième paramètre est la variable chaîne à décomposer.

Ensuite, nous examinons comment convertir une chaîne mixte chinois et anglais en un tableau. Ici, nous devons utiliser des expressions régulières PHP pour diviser les chaînes. En prenant comme exemple des phrases mixtes en chinois et en anglais, nous pouvons utiliser le programme suivant pour convertir des chaînes en tableaux :

$str = "Hello,世界";
preg_match_all("/./u", $str, $matches);
print_r($matches[0]);

Le résultat du programme ci-dessus est le suivant :

Array
(
    [0] => H
    [1] => e
    [2] => l
    [3] => l
    [4] => o
    [5] => ,
    [6] => 世
    [7] => 界
)

Ici, nous avons utilisé la fonction preg_match_all(), qui divise une chaîne en un tableau basé sur une expression régulière. Parmi eux, l'expression régulière "/./u" signifie faire correspondre tous les caractères (y compris le chinois), et u signifie analyser en codage UTF-8, garantissant que les caractères chinois peuvent être traités correctement.

Le programme ci-dessus utilise la fonction preg_match_all() pour diviser la chaîne en éléments du tableau. S'il y a du chinois dans la chaîne, elle sera normalement divisée en caractères. À partir des résultats de sortie, nous pouvons voir que le programme stocke tous les caractères dispersés dans la variable tableau $matches[0].

Si nous voulons stocker les caractères anglais et chinois de la chaîne séparément dans différents éléments du tableau, nous pouvons utiliser le programme suivant :

$str = "Hello,世界";
preg_match_all("/[x{4e00}-x{9fa5}]+|[A-Za-z]+/u", $str, $matches);
print_r($matches[0]);

La sortie de ce programme est la suivante suit :

Array
(
    [0] => Hello
    [1] => 世界
)

Dans le programme ci-dessus, l'expression régulière "/[x{4e00}-x{9fa5}]+|[A-Za-z]+/u" est utilisée, où [x{4e00}-x{9fa5}] signifie les caractères chinois correspondants, [A-Za-z] signifie faire correspondre les caractères anglais.

Si nous devons convertir des caractères chinois en Pinyin et que le Pinyin est également stocké en tant qu'élément de tableau, nous pouvons utiliser le programme suivant :

$str = "你好,世界";
preg_match_all("/[x{4e00}-x{9fa5}]+|[A-Za-z]+/u", $str, $matches);
for($i=0; $i<count($matches[0]); $i++){
    $str = $matches[0][$i];
    if (preg_match("/[x{4e00}-x{9fa5}]/u", $str)) {
        $pinyin = PinYin($str);
        $arr[] = $pinyin[0];
    } else {
        $arr[] = $str;
    }
}
print_r($arr);

Le résultat de ce programme est la suivante : #🎜🎜 #

Array
(
    [0] => ni
    [1] => hao
    [2] => shi
    [3] => jie
)

Dans le programme ci-dessus, nous encapsulons une fonction PinYin(), qui est utilisée pour convertir les caractères chinois en Pinyin. Dans le programme, tant que la chaîne contient des caractères chinois, cette fonction sera appelée pour convertir les caractères chinois en Pinyin et les stocker dans la variable tableau $arr.

À ce stade, nous avons réussi à convertir les chaînes chinoises et anglaises en tableaux. Si vous devez effectuer un traitement de caractères et une analyse de texte, la conversion d'une chaîne en tableau deviendra l'une de vos fonctions PHP couramment utilisées.

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