Heim > Backend-Entwicklung > PHP-Problem > So konvertieren Sie ein Objektarray in ein Array in PHP

So konvertieren Sie ein Objektarray in ein Array in PHP

PHPz
Freigeben: 2023-04-20 13:43:00
Original
471 Leute haben es durchsucht

PHP ist eine sehr beliebte Programmiersprache, die objektorientierte Programmierung (OOP) und Array-Operationen unterstützt. In PHP müssen wir manchmal ein Array von Objekten in ein normales Array konvertieren. In diesem Artikel wird erläutert, wie Sie in PHP ein Array von Objekten in ein Array konvertieren.

  1. Verwenden Sie die json_decode-Funktion

Es gibt eine sehr praktische Funktion in PHP, die JSON-Formatzeichenfolgen in PHP-Arrays konvertieren kann: json_decode.

Objektarrays können in JSON-formatierte Zeichenfolgen codiert werden. Daher können wir das Objektarray zunächst in einen JSON-String codieren und es dann mit der Funktion json_decode in ein PHP-Array konvertieren. Hier ist ein Beispiel:

<?php
class Person {
    public $name;
    public $age;
    public $gender;
}

// 创建对象数组
$persons = [];
$person1 = new Person();
$person1->name = "张三";
$person1->age = 20;
$person1->gender = "男";
$persons[] = $person1;

$person2 = new Person();
$person2->name = "李四";
$person2->age = 22;
$person2->gender = "男";
$persons[] = $person2;

// 将对象数组编码成JSON字符串
$json_str = json_encode($persons);

// 将JSON字符串解码成PHP数组
$person_arr = json_decode($json_str, true);

print_r($person_arr);
?>
Nach dem Login kopieren

Dadurch wird das folgende Ergebnis ausgegeben:

Array
(
    [0] => Array
        (
            [name] => 张三
            [age] => 20
            [gender] => 男
        )

    [1] => Array
        (
            [name] => 李四
            [age] => 22
            [gender] => 男
        )

)
Nach dem Login kopieren
  1. Verwendung der Serializable-Schnittstelle

Eine weitere Möglichkeit, ein Array von Objekten in ein Array umzuwandeln, besteht darin, die Serializable-Schnittstelle zu implementieren. Diese Methode erfordert eine benutzerdefinierte Methode in der Klasse, um das Objektarray dieser Klasse in eine serialisierbare Zeichenfolge umzuwandeln. Hier ist ein Beispiel:

<?php
class Person implements Serializable {
    public $name;
    public $age;
    public $gender;

    // 实现Serializable接口的方法
    public function serialize() {
        return serialize([$this->name, $this->age, $this->gender]);
    }

    // 实现Serializable接口的方法
    public function unserialize($serialized) {
        [$this->name, $this->age, $this->gender] = unserialize($serialized);
    }
}

// 创建对象数组
$persons = [];
$person1 = new Person();
$person1->name = "张三";
$person1->age = 20;
$person1->gender = "男";
$persons[] = $person1;

$person2 = new Person();
$person2->name = "李四";
$person2->age = 22;
$person2->gender = "男";
$persons[] = $person2;

// 将对象数组编码成可序列化的字符串
$serialized_str = serialize($persons);

// 将序列化的字符串转换为PHP数组
$person_arr = unserialize($serialized_str);

print_r($person_arr);
?>
Nach dem Login kopieren

Dadurch wird das folgende Ergebnis ausgegeben:

Array
(
    [0] => Person Object
        (
            [name] => 张三
            [age] => 20
            [gender] => 男
        )

    [1] => Person Object
        (
            [name] => 李四
            [age] => 22
            [gender] => 男
        )

)
Nach dem Login kopieren

Zusammenfassung

In diesem Artikel werden zwei Möglichkeiten zum Konvertieren eines Arrays von Objekten vorgestellt in ein Array Methode: Verwenden Sie die Funktion json_decode und implementieren Sie die Serializable-Schnittstelle. Entwickler können entsprechend ihren eigenen Anforderungen unterschiedliche Implementierungsmethoden auswählen. Denken Sie daran, dass bei Verwendung der zweiten Methode die Objektklasse die Serializable-Schnittstelle implementieren muss.

Das obige ist der detaillierte Inhalt vonSo konvertieren Sie ein Objektarray in ein Array in PHP. 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