So konvertieren Sie ein PHP-Array in ein JSON-Objektarray

PHPz
Freigeben: 2023-04-19 09:53:23
Original
500 Leute haben es durchsucht

Das Konvertieren eines Arrays in ein JSON-Objektarray oder ein Objektarray in PHP ist eine Aufgabe, die häufig durchgeführt werden muss. In diesem Artikel wird erläutert, wie Sie diese Funktionalität anhand von Beispielcode implementieren.

PHP-Array in JSON-Objektarray konvertieren

Zuerst müssen wir ein PHP-Array definieren, das mehrere assoziative Arrays enthält. Ein Beispiel ist wie folgt:

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

Als nächstes können wir die in PHP integrierte Funktion json_encode() verwenden, um dieses PHP-Array in ein Array von JSON-Objekten zu konvertieren. Das Beispiel sieht wie folgt aus:

$json_data = json_encode($data);
Nach dem Login kopieren
Nach dem Login kopieren

Mit dem obigen Code konvertieren wir das PHP-Array $data in das JSON-Objektarray $json_data. Das Konvertierungsergebnis ist wie folgt:

[
    {"name":"John","age":30},
    {"name":"Mary","age":25},
    {"name":"Peter","age":35}
]
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Konvertieren Sie das PHP-Array in ein Array von Objekten, die Methoden in einem JSON-Objektarray enthalten.

In einigen Fällen müssen wir ein PHP-Array in ein Array von JSON-Objekten konvertieren, wobei jedes Objekt in enthält Ergänzung zur Eigenschaftenmethode. Um diese Funktionalität zu erreichen, können wir anonyme Klassen in PHP verwenden. Ein Beispiel ist wie folgt:

$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;
        }
    }
);
Nach dem Login kopieren

Im obigen Code definieren wir ein PHP-Array $data, dessen jedes Element eine Instanz einer anonymen Klasse ist. Die anonyme Klasse enthält die Eigenschaften $name und $age sowie die Methode sayHello(). Als nächstes können wir das PHP-Array $data über die Funktion json_encode() in ein JSON-Objektarray konvertieren.

$json_data = json_encode($data);
Nach dem Login kopieren
Nach dem Login kopieren

Die Konvertierungsergebnisse lauten wie folgt:

[
    {"name":"John","age":30},
    {"name":"Mary","age":25},
    {"name":"Peter","age":35}
]
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Die Methode sayHello() ist in den obigen Ergebnissen nicht enthalten, da bei der Konvertierung eines PHP-Objekts in ein JSON-Objekt nur Attribute und keine Methoden einbezogen werden.

Konvertieren Sie das PHP-Array in ein Array von Objekten, die Methoden im JSON-Objektarray enthalten.

In einigen Fällen müssen wir das PHP-Array in ein Array von JSON-Objekten konvertieren, wobei jedes Objekt zusätzlich zu Eigenschaften auch Methoden enthält. Um diese Funktion zu erreichen, können wir die Klassenvererbung verwenden. Ein Beispiel ist wie folgt:

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);
Nach dem Login kopieren

Im obigen Code definieren wir die Klasse Person und ihre drei Unterklassen John, Mary und Peter. Diese drei Unterklassen erben alle von der Person-Klasse und überschreiben die Methode sayHello(). Als nächstes definieren wir ein PHP-Array $data, das Instanzen von John, Mary und Peter enthält. Abschließend konvertieren wir das PHP-Array $data in ein Array von JSON-Objekten, indem wir die Funktion json_encode() aufrufen.

Das Konvertierungsergebnis lautet wie folgt:

[
    {"name":"John","age":30},
    {"name":"Mary","age":25},
    {"name":"Peter","age":35}
]
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Wie im vorherigen Beispiel ist die Methode sayHello() nicht im obigen Ergebnis enthalten. Wenn Sie Methoden in ein JSON-Objektarray aufnehmen müssen, müssen Sie diese Methoden als Attribute konvertieren.

Zusammenfassung

In diesem Artikel wird erklärt, wie man ein Array in ein JSON-Objektarray oder ein Array von Objekten in PHP konvertiert, und enthält einige Beispiele für Sonderfälle, wie zum Beispiel: wie man konvertiert, wenn die Objekte im Array Methoden enthalten. Ich hoffe, dass diese Beispiele für Ihre Arbeit oder Ihr Studium hilfreich sind.

Das obige ist der detaillierte Inhalt vonSo konvertieren Sie ein PHP-Array in ein JSON-Objektarray. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage