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

Comment convertir une chaîne en tableau en PHP

PHPz
Libérer: 2023-04-23 09:47:42
original
871 Les gens l'ont consulté

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])
Copier après la connexion

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";
Copier après la connexion

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

$arr = explode(",", $str);
print_r($arr);
Copier après la connexion

Le résultat de sortie est :

Array
(
    [0] => apple
    [1] => banana
    [2] => orange
)
Copier après la connexion
  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])
Copier après la connexion

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";
Copier après la connexion

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

$arr = str_split($str);
print_r($arr);
Copier après la connexion

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
)
Copier après la connexion

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";
Copier après la connexion

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
)
Copier après la connexion
Copier après la connexion

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()]])
Copier après la connexion

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);
Copier après la connexion

Le résultat est :

Array
(
    [0] => 中
    [1] => 文
    [2] => t
    [3] => e
    [4] => s
    [5] => t
)
Copier après la connexion
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal