Maison  >  Article  >  développement back-end  >  Comment convertir une chaîne en tableau en PHP

Comment convertir une chaîne en tableau en PHP

PHPz
PHPzoriginal
2023-04-23 09:12:17837parcourir

En PHP, les chaînes et les tableaux sont l'un des types de données les plus couramment utilisés. Une chaîne est généralement constituée de données constituées d'un ensemble de caractères, tandis qu'un tableau est une structure de données constituée d'une liste ordonnée de données. En PHP, nous devons parfois convertir une chaîne en tableau afin d'effectuer des opérations plus flexibles sur les données qu'elle contient. Cet article explique comment convertir une chaîne en tableau en PHP et explore les problèmes associés sous l'encodage UTF-8.

1. Chaîne PHP en tableau

La conversion d'une chaîne en tableau en PHP peut être réalisée via diverses méthodes, telles que des fonctions telles que éclater(), str_split() et preg_split(). Deux de ces méthodes sont présentées ci-dessous.

  1. Utilisez la fonctionexplose()

La fonctionexplode() est un moyen courant de convertir une chaîne en tableau en PHP. Sa syntaxe est la suivante :

array explode(string $delimiter, string $string [, int $limit = PHP_INT_MAX])

Parmi eux, $delimiter est l'identifiant pour diviser le. string, et $string est la chaîne à diviser, $limit est le nombre maximum d'unités à renvoyer (la valeur par défaut est PHP_INT_MAX).

Par exemple, nous avons une chaîne $str dont le contenu est :

$str = "apple,banana,orange";

Nous pouvons la convertir en un tableau avec une virgule comme délimiteur, le code est le suivant :

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

Le résultat de sortie est :

Array
(
    [0] => apple
    [1] => banana
    [2] => orange
)
  1. Utilisez str_split () Fonction

La fonction str_split() permet de convertir une chaîne en tableau de caractères, sa syntaxe est la suivante :

array str_split(string $string [, int $split_length = 1])

Où, $string est la chaîne à convertir, $split_length est un paramètre facultatif, spécifiant chaque caractère. longueur, la valeur par défaut est 1 caractère.

Par exemple, nous avons une chaîne $str dont le contenu est :

$str = "hello world";

Nous pouvons la convertir en un tableau de caractères, le code est le suivant :

$arr = str_split($str);
print_r($arr);

Le résultat de sortie est :

Array
(
    [0] => h
    [1] => e
    [2] => l
    [3] => l
    [4] => o
    [5] =>
    [6] => w
    [7] => o
    [8] => r
    [9] => l
    [10] => d
)

2. Encodage des caractères et UTF -8 Problèmes d'encodage

Lorsque nous utilisons la méthode ci-dessus pour convertir une chaîne en tableau, nous devons faire attention au problème d'encodage des caractères. Étant donné que la longueur (nombre d'octets) d'un caractère est différente selon les encodages de caractères, cela entraînera des problèmes lors de l'utilisation de la fonction str_split() sous l'encodage UTF-8.

Sous l'encodage UTF-8, un caractère chinois occupe généralement 3 octets et un caractère anglais occupe 1 octet. Par conséquent, si nous utilisons la fonction str_split() pour convertir une chaîne codée en UTF-8 en un tableau, des erreurs de fractionnement de caractères se produiront.

Par exemple, nous avons une chaîne $str encodée en UTF-8 dont le contenu est :

$str = "中文test";

Nous voulons la convertir en un tableau de caractères, mais si nous utilisons directement la fonction str_split(), nous obtiendrons le résultat suivant :

Array
(
    [0] => 中
    [1] => 文
    [2] => t
    [3] => e
    [4] => s
    [5] => t
)

On peut voir que les caractères chinois sont divisés par erreur en deux caractères.

Pour résoudre ce problème, nous pouvons utiliser la fonction mb_str_split(). Cette fonction est un complément à la fonction str_split() et prend en charge le fractionnement de caractères multi-octets. Sa syntaxe est la suivante :

array mb_str_split(string $string [, int $split_length = 1 [, string $encoding = mb_internal_encoding()]])

Parmi eux, $string est la chaîne à convertir, et $split_length est un paramètre facultatif, spécifiant la longueur de chaque caractère, la valeur par défaut est 1 caractère, $encoding est un paramètre facultatif, spécifie l'encodage des caractères, la valeur par défaut est mb_internal_encoding().

Par exemple, nous pouvons utiliser le code suivant pour convertir la chaîne $str ci-dessus en un tableau :

$arr = mb_str_split($str);
print_r($arr);

Le résultat est :

Array
(
    [0] => 中
    [1] => 文
    [2] => t
    [3] => e
    [4] => s
    [5] => t
)

Le résultat est correct.

3. Résumé

En PHP, la conversion d'une chaîne en tableau est une opération courante. Nous pouvons le faire en utilisant la fonction explosive() ou str_split(). Cependant, sous l'encodage UTF-8, vous devez faire attention au problème de longueur des caractères, qui peut être résolu à l'aide de la fonction mb_str_split(). En même temps, nous pouvons également utiliser d'autres fonctions, telles que preg_split(), etc. En utilisation réelle, les fonctions et méthodes appropriées doivent être sélectionnées en fonction des situations spécifiques.

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