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

Bagaimana untuk menukar tatasusunan objek dalam PHP

PHPz
PHPzasal
2023-04-23 10:05:53484semak imbas

Dalam pembangunan PHP, tatasusunan objek biasanya merujuk kepada koleksi objek yang mengandungi atribut dan data yang berbeza Objek ini boleh ditakrifkan sebagai kelas, atau set hasil yang dikembalikan daripada pernyataan pertanyaan pangkalan data. Dalam sesetengah kes, kita perlu menukar tatasusunan objek ini kepada tatasusunan biasa untuk operasi dan penghantaran yang lebih mudah. Artikel ini akan memperkenalkan secara terperinci cara PHP melaksanakan penukaran tatasusunan objek.

1. Tatasusunan objek dalam PHP

Dalam PHP, pelaksanaan tatasusunan objek boleh dipelbagaikan.

  1. Objek tatasusunan

Objek tatasusunan ialah pembolehubah jenis objek yang ditakrifkan sebagai tatasusunan Tiada hubungan kelas antara objek ini. Sebagai contoh, di bawah kita mentakrifkan objek tatasusunan:

$user1 = array(
    'id' => 1,
    'username' => 'user1',
    'email' => 'user1@example.com'
);

$user2 = array(
    'id' => 2,
    'username' => 'user2',
    'email' => 'user2@example.com'
);

$users = array($user1, $user2);

Dalam kod di atas, kami mentakrifkan dua objek tatasusunan masing-masing $user1 dan $user2, dan menggunakan fungsi tatasusunan() untuk memasukkannya dalam tatasusunan dalam $pengguna.

  1. Objek kelas

Objek kelas ialah objek yang mentakrifkan kelas ini mempunyai hubungan warisan dengan kelas dan boleh menggunakan atribut dan kaedah kelas. Sebagai contoh, di bawah kami mentakrifkan kelas Pengguna dan mencipta beberapa objek kelas ini:

class User {
    public $id;
    public $username;
    public $email;
    
    public function __construct($id, $username, $email) {
        $this->id = $id;
        $this->username = $username;
        $this->email = $email;
    }
}

$user1 = new User(1, 'user1', 'user1@example.com');
$user2 = new User(2, 'user2', 'user2@example.com');
$users = array($user1, $user2);

Dalam kod di atas, kami mentakrifkan kelas Pengguna dan menggunakan fungsi __construct() untuk mencipta $ user1 dan $user2 ialah dua objek kelas ini, dan gunakan fungsi array() untuk memasukkannya dalam array $users.

  1. Objek set hasil pangkalan data

Objek set hasil pangkalan data ialah hasil data yang diperoleh daripada pangkalan data menggunakan pernyataan pertanyaan Hasilnya ialah tatasusunan objek yang serupa. Sebagai contoh, di bawah kami menggunakan kaedah mysqli untuk menanyakan pangkalan data dan mendapatkan objek set hasil:

$conn = new mysqli($servername, $username, $password, $dbname);

$sql = "SELECT * FROM users";
$result = $conn->query($sql);

$users = array();
if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        $user = new User($row["id"], $row["username"], $row["email"]);
        array_push($users, $user);
    }
}

Dalam kod di atas, kami menggunakan kaedah mysqli untuk menanyakan pangkalan data dan menetapkan objek set hasil yang dikembalikan kepada $ hasil pembolehubah, dan kemudian kami menggunakan gelung sementara untuk menukar hasil pertanyaan kepada tatasusunan objek kelas Pengguna.

2. Tukar tatasusunan objek kepada tatasusunan biasa

Dalam sesetengah kes, kita perlu menukar tatasusunan objek kepada tatasusunan biasa untuk memudahkan operasi dan penghantaran. PHP datang dengan banyak fungsi untuk melaksanakan proses ini, kami akan memperkenalkannya satu persatu.

  1. Gunakan fungsi json_encode untuk menukar

Fungsi json_encode ialah fungsi yang disertakan dengan PHP, yang boleh menukar jenis data seperti tatasusunan dan objek kepada data format JSON. Di sini, kita boleh mendapatkan tatasusunan biasa yang kami inginkan dengan menukar tatasusunan objek kepada data format JSON, dan kemudian menukar data JSON kepada tatasusunan. Berikut ialah contoh:

$json_users = json_encode($users);  //将对象数组转换为JSON格式数据
$users_arr = json_decode($json_users, true);  //将JSON格式数据转换为数组

Dalam kod di atas, kami menggunakan fungsi json_encode untuk menukar tatasusunan objek $users kepada data format JSON dan menetapkannya kepada pembolehubah $json_users. Seterusnya, kami menggunakan fungsi json_decode untuk menukar data format JSON dalam pembolehubah $json_users kepada tatasusunan bersekutu dan menetapkannya kepada pembolehubah $users_arr. Dengan cara ini, pembolehubah $users_arr memegang bentuk tatasusunan biasa tatasusunan objek $users.

  1. Gunakan penukaran gelung foreach

Gelung foreach boleh membantu kami mengendalikan setiap elemen dalam tatasusunan dan ia juga boleh membantu kami menukar tatasusunan objek kepada tatasusunan biasa .

$users_arr = array();
foreach($users as $user) {
    $user_arr = array(
        'id' => $user->id,
        'username' => $user->username,
        'email' => $user->email
    );
    array_push($users_arr, $user_arr);
}

Dalam kod di atas, kami merentasi setiap elemen dalam tatasusunan objek $users melalui gelung foreach, menyimpan atribut dan datanya dalam tatasusunan bersekutu $user_arr, dan menggunakan fungsi array_push untuk menolak setiap elemen Tatasusunan $user_arr ditambahkan pada tatasusunan $users_arr. Akhirnya, tatasusunan $users_arr ialah tatasusunan biasa yang mengandungi semua data dalam tatasusunan objek $users.

  1. Gunakan fungsi array_map untuk menukar

Fungsi array_map ialah fungsi yang disertakan dengan PHP Ia akan menggunakan fungsi yang ditentukan pada setiap elemen tatasusunan dan mengembalikan a tatasusunan baharu. Berikut ialah contoh:

function obj_to_arr($obj) {
    $result = array();
    foreach ($obj as $key => $val) {
        if (is_object($val)) {
            $result[$key] = obj_to_arr($val);
        } else {
            $result[$key] = $val;
        }
    }
    return $result;
}

$users_arr = array_map('obj_to_arr', $users);

Dalam kod di atas, kami mula-mula mentakrifkan fungsi obj_to_arr untuk menukar objek kepada tatasusunan. Fungsi ini menggunakan objek yang ditentukan untuk setiap elemen dalam tatasusunan dan mengembalikan tatasusunan baharu. Akhir sekali, kami menggunakan fungsi array_map untuk menggunakan fungsi obj_to_arr pada setiap elemen dalam tatasusunan objek $users dan berikan hasilnya kepada tatasusunan $users_arr.

3. Ringkasan

Dalam pembangunan PHP, tatasusunan objek ialah salah satu jenis data biasa, dan pemprosesan serta pengendaliannya merupakan bahagian yang amat diperlukan dalam proses pembangunan. Dalam artikel ini, kami memperkenalkan secara terperinci cara mentakrif tatasusunan objek dalam PHP dan menyediakan tiga cara untuk menukarnya kepada tatasusunan biasa. Kaedah di atas adalah sangat mudah dan mudah difahami, dan saya harap ia dapat membantu pembangun PHP.

Atas ialah kandungan terperinci Bagaimana untuk menukar tatasusunan objek 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