Maison  >  Article  >  développement back-end  >  Comment convertir un tableau PHP en tableau d'objets JSON

Comment convertir un tableau PHP en tableau d'objets JSON

PHPz
PHPzoriginal
2023-04-19 09:20:06456parcourir

La conversion d'un tableau en tableau d'objets JSON ou en tableau d'objets en PHP est une tâche qui doit être effectuée fréquemment. Cet article explique comment implémenter cette fonctionnalité via un exemple de code.

Convertir un tableau PHP en tableau d'objets JSON

Tout d'abord, nous devons définir un tableau PHP contenant plusieurs tableaux associatifs. Un exemple est le suivant :

$data = array(
    array(
        'name' => 'John',
        'age' => 30
    ),
    array(
        'name' => 'Mary',
        'age' => 25
    ),
    array(
        'name' => 'Peter',
        'age' => 35
    )
);

Ensuite, nous pouvons utiliser la fonction intégrée PHP json_encode() pour convertir ce tableau PHP en un tableau d'objets JSON. L'exemple est le suivant :

$json_data = json_encode($data);

Avec le code ci-dessus, nous convertissons le tableau PHP $data en tableau d'objets JSON $json_data. Le résultat de la conversion est le suivant :

[
    {"name":"John","age":30},
    {"name":"Mary","age":25},
    {"name":"Peter","age":35}
]

Convertir un tableau PHP en un tableau d'objets contenant des méthodes dans un tableau d'objets JSON

Dans certains cas, nous devons convertir un tableau PHP en un tableau d'objets JSON, où chaque objet contient dans méthode d’ajout aux propriétés. Pour réaliser cette fonctionnalité, nous pouvons utiliser des classes anonymes en PHP. Un exemple est le suivant :

$data = array(
    new class('John', 30) {
        public $name;
        public $age;

        public function __construct($name, $age) {
            $this->name = $name;
            $this->age = $age;
        }

        public function sayHello() {
            echo 'Hello, my name is ' . $this->name;
        }
    },
    new class('Mary', 25) {
        public $name;
        public $age;

        public function __construct($name, $age) {
            $this->name = $name;
            $this->age = $age;
        }

        public function sayHello() {
            echo 'Hello, my name is ' . $this->name;
        }
    },
    new class('Peter', 35) {
        public $name;
        public $age;

        public function __construct($name, $age) {
            $this->name = $name;
            $this->age = $age;
        }

        public function sayHello() {
            echo 'Hello, my name is ' . $this->name;
        }
    }
);

Dans le code ci-dessus, nous définissons un tableau PHP $data, dont chaque élément est une instance d'une classe anonyme. La classe anonyme contient les propriétés $name et $age et la méthode sayHello(). Ensuite, nous pouvons convertir le tableau PHP $data en un tableau d'objets JSON via la fonction json_encode().

$json_data = json_encode($data);

Les résultats de la conversion sont les suivants :

[
    {"name":"John","age":30},
    {"name":"Mary","age":25},
    {"name":"Peter","age":35}
]

La méthode sayHello() n'est pas incluse dans les résultats ci-dessus, car lors de la conversion d'un objet PHP en objet JSON, seuls les attributs seront inclus, pas les méthodes.

Convertir un tableau PHP en tableau d'objets contenant des méthodes dans un tableau d'objets JSON

Dans certains cas, nous devons convertir un tableau PHP en tableau d'objets JSON, où chaque objet contient des méthodes en plus des propriétés. Afin de réaliser cette fonction, nous pouvons utiliser l’héritage de classe. Un exemple est le suivant :

class Person {
    public $name;
    public $age;

    public function __construct($name, $age) {
        $this->name = $name;
        $this->age = $age;
    }

    public function sayHello() {
        echo 'Hello, my name is ' . $this->name;
    }
}

class John extends Person {
    public function sayHello() {
        echo 'Hello, my name is ' . $this->name . ' and I am John';
    }
}

class Mary extends Person {
    public function sayHello() {
        echo 'Hello, my name is ' . $this->name . ' and I am Mary';
    }
}

class Peter extends Person {
    public function sayHello() {
        echo 'Hello, my name is ' . $this->name . ' and I am Peter';
    }
}

$data = array(
    new John('John', 30),
    new Mary('Mary', 25),
    new Peter('Peter', 35)
);

$json_data = json_encode($data);

Dans le code ci-dessus, nous définissons la classe Person et ses trois sous-classes John, Mary et Peter. Ces trois sous-classes héritent toutes de la classe Person et remplacent la méthode sayHello(). Ensuite, nous définissons un tableau PHP $data, qui contient des instances de John, Mary et Peter. Enfin, nous convertissons le tableau PHP $data en un tableau d'objets JSON en appelant la fonction json_encode().

Le résultat de la conversion est le suivant :

[
    {"name":"John","age":30},
    {"name":"Mary","age":25},
    {"name":"Peter","age":35}
]

Identique à l'exemple précédent, la méthode sayHello() n'est pas incluse dans le résultat ci-dessus. Si vous devez inclure des méthodes dans un tableau d'objets JSON, vous devez convertir ces méthodes en attributs.

Résumé

Cet article explique comment convertir un tableau en tableau d'objets JSON ou en tableau d'objets en PHP, et inclut quelques exemples de cas particuliers, tels que : comment convertir si les objets du tableau contiennent des méthodes. J'espère que ces exemples vous seront utiles pour votre travail ou vos études.

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