Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menukar tatasusunan objek menjadi tatasusunan dalam php

Bagaimana untuk menukar tatasusunan objek menjadi tatasusunan dalam php

PHPz
PHPzasal
2023-04-20 10:10:48446semak imbas

PHP ialah bahasa pengaturcaraan yang sangat popular yang menyokong pengaturcaraan berorientasikan objek (OOP) dan operasi tatasusunan. Dalam PHP, kadangkala kita perlu menukar tatasusunan objek kepada tatasusunan biasa. Artikel ini akan memperkenalkan cara menukar tatasusunan objek kepada tatasusunan dalam PHP.

  1. Gunakan fungsi json_decode

Terdapat fungsi yang sangat mudah dalam PHP yang boleh menukar rentetan format JSON kepada tatasusunan PHP: json_decode.

Susun atur objek boleh dikodkan ke dalam rentetan berformat JSON. Oleh itu, kita boleh mula-mula mengekod tatasusunan objek ke dalam rentetan JSON dan kemudian menggunakan fungsi json_decode untuk menukarnya menjadi tatasusunan PHP. Berikut ialah contoh:

<?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);
?>

Ini akan mengeluarkan hasil berikut:

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

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

)
  1. Gunakan antara muka Serializable

Cara lain untuk menukar tatasusunan objek Cara untuk menukar kepada tatasusunan adalah dengan melaksanakan antara muka Boleh Bersiri. Kaedah ini memerlukan kaedah tersuai dalam kelas untuk menukar tatasusunan objek kelas ini kepada rentetan boleh bersiri. Berikut ialah contoh:

<?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);
?>

Ini akan menghasilkan yang berikut:

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

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

)

Ringkasan

Artikel ini menerangkan dua kaedah untuk menukar tatasusunan objek kepada tatasusunan: Gunakan fungsi json_decode dan laksanakan antara muka Serializable. Pembangun boleh memilih kaedah pelaksanaan yang berbeza mengikut keperluan mereka sendiri. Ingat bahawa apabila menggunakan kaedah kedua, kelas objek perlu melaksanakan antara muka Serializable.

Atas ialah kandungan terperinci Bagaimana untuk menukar tatasusunan objek menjadi tatasusunan dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn