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

Bagaimana untuk menukar tatasusunan kepada tatasusunan objek dalam php

PHPz
PHPzasal
2023-04-12 09:14:16710semak imbas

Dalam PHP, tatasusunan dan objek ialah dua bentuk yang berbeza, tetapi kita selalunya perlu menukar antaranya. Artikel ini akan menerangkan cara menukar tatasusunan kepada tatasusunan objek dan menukar tatasusunan objek kembali kepada tatasusunan biasa dalam PHP.

Pertama, mari kita lihat cara menukar tatasusunan biasa kepada tatasusunan objek. Dalam PHP kita boleh mencapai ini menggunakan pemutus (melemparkan tatasusunan ke objek) atau mencipta objek secara manual. Berikut ialah demonstrasi kedua-dua kaedah:

Kaedah 1: Penukaran jenis paksa

$arr = array('id'=>1, 'name'=>'John', 'age'=>25);
$obj = (object)$arr;
print_r($obj);

Output:

stdClass Object
(
    [id] => 1
    [name] => John
    [age] => 25
)

Dalam kod di atas, kami menggunakan (object)Pengendali menukar tatasusunan kepada objek. Operator ini sebenarnya adalah cast yang menukar nilai skalar, tatasusunan atau sumber kepada objek. Kini $obj ialah objek dan kita boleh mengakses sifatnya seperti objek biasa.

Kaedah 2: Buat objek secara manual

$arr = array('id'=>1, 'name'=>'John', 'age'=>25);
$obj = new stdClass();
foreach ($arr as $key=>$value) {
   $obj->$key = $value;
}
print_r($obj);

Output:

stdClass Object
(
    [id] => 1
    [name] => John
    [age] => 25
)

Dalam kod di atas, kami cipta objek kosong secara manual $obj, Kemudian gunakan gelung untuk lelaran melalui tatasusunan dan menetapkan setiap pasangan nilai kunci tatasusunan sebagai harta objek. Kini $obj ialah objek dengan tiga sifat.

Seterusnya, mari kita lihat cara menukar tatasusunan objek kepada tatasusunan biasa. Dalam PHP kita boleh mencapai ini menggunakan pemutus (melemparkan objek ke tatasusunan) atau secara manual melelaran ke atas tatasusunan objek. Berikut ialah demonstrasi kedua-dua kaedah:

Kaedah 1: Penukaran jenis paksa

$obj1 = new stdClass();
$obj1->id = 1;
$obj1->name = 'John';
$obj1->age = 25;

$obj2 = new stdClass();
$obj2->id = 2;
$obj2->name = 'Jane';
$obj2->age = 30;

$arr = array($obj1, $obj2);
$arr = (array)$arr;
print_r($arr);

Output:

Array
(
    [0] => stdClass Object
        (
            [id] => 1
            [name] => John
            [age] => 25
        )

    [1] => stdClass Object
        (
            [id] => 2
            [name] => Jane
            [age] => 30
        )
)

Dalam kod di atas, kami menggunakan menukar tatasusunan objek kepada tatasusunan biasa. Operator ini sebenarnya adalah pelakon yang menukar objek kepada tatasusunan. Kini (array) ialah tatasusunan biasa dan kita boleh mengakses elemennya sama seperti tatasusunan biasa. $arr

Kaedah 2: Melintasi tatasusunan objek secara manual

$obj1 = new stdClass();
$obj1->id = 1;
$obj1->name = 'John';
$obj1->age = 25;

$obj2 = new stdClass();
$obj2->id = 2;
$obj2->name = 'Jane';
$obj2->age = 30;

$arr = array($obj1, $obj2);
$new_arr = array();
foreach ($arr as $obj) {
   $new_arr[] = (array)$obj;
}
print_r($new_arr);
Output:

Array
(
    [0] => Array
        (
            [id] => 1
            [name] => John
            [age] => 25
        )

    [1] => Array
        (
            [id] => 2
            [name] => Jane
            [age] => 30
        )

)
Dalam kod di atas, kami melintasi tatasusunan objek

dan menambah setiap hantar objek ke tatasusunan dan tambahkannya pada tatasusunan baharu $arr. Kini $new_arr ialah tatasusunan biasa dengan dua elemen, setiap elemen ialah tatasusunan bersekutu yang mengandungi tiga pasangan nilai kunci. $new_arr

Ringkasan

Dalam PHP, kita boleh menukar antara tatasusunan dan objek menggunakan hantaran atau traversal manual. Tidak kira kaedah yang anda pilih, selagi anda memahami perbezaan antara tatasusunan dan objek, anda boleh menukar dengan mudah. Dalam pembangunan sebenar, keupayaan ini adalah sangat biasa, kerana kadangkala kita perlu menukar tatasusunan kepada objek untuk beroperasi dengan lebih baik padanya.

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