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

Comment convertir une chaîne php en tableau d'objets

PHPz
PHPzoriginal
2023-04-17 14:11:55734parcourir

Dans le processus de développement de sites Web, nous devons souvent convertir des chaînes en tableaux d'objets pour faciliter les opérations sur les données. En PHP, il existe de nombreuses façons de réaliser cette fonction, et cet article vous en présentera une.

1. Utilisez la fonction json_decode

PHP fournit la fonction json_decode, qui peut convertir des chaînes au format JSON en objets ou en tableaux. Voici un exemple simple :

<?php
$str = &#39;{"name": "Tom", "age": 18}&#39;;
$obj = json_decode($str);
print_r($obj);
?>

Le résultat est :

stdClass Object
(
    [name] => Tom
    [age] => 18
)

Comme vous pouvez le voir, la fonction json_decode convertit la chaîne JSON en un objet nommé stdClass.

Si vous souhaitez le convertir en tableau, vous pouvez ajouter le deuxième paramètre true à la fonction, comme indiqué ci-dessous :

<?php
$str = &#39;{"name": "Tom", "age": 18}&#39;;
$arr = json_decode($str, true);
print_r($arr);
?>

Le résultat de sortie est :

Array
(
    [name] => Tom
    [age] => 18
)

Comme vous pouvez le voir, la fonction json_decode convertit la chaîne JSON dans un tableau associatif.

2. Divisez la chaîne par lignes et convertissez-la en tableau

Si votre chaîne n'est pas au format JSON, vous pouvez d'abord la diviser par lignes, puis la traiter ligne par ligne. Voici un exemple simple :

<?php
$str = "Tom,18\nJerry,22\n";
$arr = explode("\n", $str);
foreach($arr as $item) {
    $tmp = explode(",", $item);
    $result[] = array(
        "name" => $tmp[0], 
        "age" => $tmp[1]
    );
}
print_r($result);
?>

Le résultat de sortie est :

Array
(
    [0] => Array
        (
            [name] => Tom
            [age] => 18
        )

    [1] => Array
        (
            [name] => Jerry
            [age] => 22
        )

)

Vous pouvez voir qu'une fois la chaîne divisée par lignes, elle est traitée ligne par ligne et convertie en un tableau contenant plusieurs objets.

3. Utilisez des expressions régulières

Si votre format de chaîne est plus complexe ou si vous devez effectuer un traitement plus complexe sur la chaîne, vous pouvez utiliser des expressions régulières. Voici un exemple simple :

<?php
$str = "name=Tom&age=18&gender=male";
preg_match_all("/(\w+)=([^&]+)/", $str, $matches);
foreach($matches[1] as $key => $value) {
    $result[$value] = $matches[2][$key];
}
print_r($result);
?>

Le résultat de sortie est :

Array
(
    [name] => Tom
    [age] => 18
    [gender] => male
)

Comme vous pouvez le voir, la chaîne de requête est convertie en un tableau associatif à l'aide d'expressions régulières.

Ci-dessus sont trois méthodes de conversion de chaînes en tableaux d'objets. Les lecteurs peuvent choisir la méthode appropriée en fonction de la situation réelle.

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