Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk menukar objek array php kepada objek array

Bagaimana untuk menukar objek array php kepada objek array

PHPz
PHPzasal
2023-04-27 09:06:40471semak imbas

Dalam PHP, kadangkala kita perlu menukar objek tatasusunan kepada objek tatasusunan lain Proses ini tidak sukar dan boleh dicapai dengan hanya beberapa baris kod ringkas.

Langkah utama untuk menukar objek tatasusunan kepada objek tatasusunan adalah seperti berikut:

  1. Tentukan data sumber

Andaikan kita mempunyai tatasusunan sumber objek yang mengandungi berbilang elemen Objek, setiap elemen mempunyai beberapa sifat. Kita perlu menukar elemen objek ini kepada objek tatasusunan yang lain, dan setiap elemen hanya perlu mengandungi sifat tertentu.

Kodnya adalah seperti berikut:

$sourceArray = array(
    (object) array('id' => 1, 'name' => 'John', 'age' => 25),
    (object) array('id' => 2, 'name' => 'Amy', 'age' => 35),
    (object) array('id' => 3, 'name' => 'Bob', 'age' => 28),
    (object) array('id' => 4, 'name' => 'Cathy', 'age' => 30)
);
  1. Tentukan struktur data sasaran

Kita perlu mentakrifkan struktur data objek tatasusunan sasaran, yang ialah, apakah atribut yang terkandung dalam setiap elemen. Jika setiap elemen tatasusunan sasaran mengandungi semua atribut dalam tatasusunan sumber, maka tatasusunan sasaran boleh sama terus dengan tatasusunan sumber tanpa sebarang penukaran.

$targetStructure = array(
    'id' => '',
    'name' => '',
);
  1. Melaksanakan penukaran

Sekarang kita mempunyai struktur data tatasusunan sumber dan tatasusunan sasaran, langkah seterusnya ialah mengendalikan proses penukaran. Kita boleh menggunakan gelung foreach untuk melelar melalui setiap elemen dalam tatasusunan sumber dan menyalin atribut yang sepadan dalam tatasusunan sumber ke tatasusunan sasaran berdasarkan struktur data tatasusunan sasaran.

$targetArray = array();

foreach ($sourceArray as $sourceObject) {
    $targetObject = array();

    foreach ($targetStructure as $key => $value) {
        $targetObject[$key] = $sourceObject->$key;
    }

    $targetArray[] = (object) $targetObject;
}

Dalam kod di atas, kami mula-mula menentukan tatasusunan kosong $targetArray untuk menyimpan data yang ditukar. Kemudian kami melakukan gelung foreach pada tatasusunan sumber, mengulangi setiap elemen $sourceObject. Dalam gelung dalam, $targetStructure tatasusunan sasaran digelung dan key dan value yang sepadan dijana. Akhir sekali, kami menukar setiap elemen sasaran kepada objek baharu dan menambahnya pada $targetArray.

  1. Hasil keluaran

Akhir sekali, kami boleh mengeluarkan tatasusunan sasaran yang ditukar untuk menyemak sama ada penukaran berjaya. Kita boleh menggunakan fungsi print_r() untuk mengeluarkan tatasusunan, atau kita boleh menggunakan fungsi json_encode() untuk menukar tatasusunan kepada format JSON untuk memudahkan melihat hasil output.

echo json_encode($targetArray);

Dengan cara ini, kami telah menyelesaikan semua langkah penukaran objek tatasusunan. Kod lengkap adalah seperti berikut:

$sourceArray = array(
    (object) array('id' => 1, 'name' => 'John', 'age' => 25),
    (object) array('id' => 2, 'name' => 'Amy', 'age' => 35),
    (object) array('id' => 3, 'name' => 'Bob', 'age' => 28),
    (object) array('id' => 4, 'name' => 'Cathy', 'age' => 30)
);

$targetStructure = array(
    'id' => '',
    'name' => '',
);

$targetArray = array();

foreach ($sourceArray as $sourceObject) {
    $targetObject = array();

    foreach ($targetStructure as $key => $value) {
        $targetObject[$key] = $sourceObject->$key;
    }

    $targetArray[] = (object) $targetObject;
}

echo json_encode($targetArray);

Dalam pembangunan sebenar, kami mungkin perlu melakukan lebih banyak pemprosesan dan penapisan data, tetapi idea umum pada dasarnya adalah sama seperti kod sampel di atas. Jika kami menghadapi keperluan untuk penukaran data, kami boleh mengubah suai kod mengikut situasi sebenar dan menyelesaikan pemprosesan data yang sepadan.

Atas ialah kandungan terperinci Bagaimana untuk menukar objek array php kepada objek array. 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