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

Bagaimana untuk menukar objek kepada tatasusunan dalam PHP

PHPz
PHPzasal
2023-04-18 10:19:05561semak imbas

PHP ialah bahasa pengaturcaraan berorientasikan objek Oleh itu, objek adalah sangat biasa dalam PHP, dan penukaran antara objek dan tatasusunan juga merupakan operasi yang kerap diperlukan. Dalam artikel ini, kami akan memperkenalkan penukaran objek dan tatasusunan dalam PHP, dan cara menukar tatasusunan objek kepada objek tatasusunan berbilang dimensi.

  1. Objek kepada Tatasusunan

Gunakan fungsi terbina dalam PHP untuk menukar objek kepada tatasusunan Anda boleh menggunakan get_object_vars(), yang menukar sifat objek kepada tatasusunan bersekutu .

Contohnya:

class car {
   public $make = 'Toyota';
   public $model = 'Camry';
   public $color = 'black';
   protected $year = 2018;
}

$obj = new car;
$arr = get_object_vars($obj);
print_r($arr);

Hasil keluaran:

Array
(
    [make] => Toyota
    [model] => Camry
    [color] => black
)

Nota: Fungsi get_object_vars() hanya boleh menukar atribut awam (awam). Atribut yang dilindungi mahupun peribadi tidak boleh ditukar.

  1. Array ke objek

Gunakan fungsi terbina dalam PHP untuk menukar tatasusunan kepada objek Anda boleh menggunakan (objek), dan anda juga boleh menggunakan penukaran jenis paksa.

Contohnya:

$arr = array('make' => 'Toyota', 'model' => 'Camry', 'color' => 'black');
$obj = (object) $arr;

// Alternatively, you can use type casting
// $obj = (object) array('make' => 'Toyota', 'model' => 'Camry', 'color' => 'black');

echo $obj->make; // Toyota

Hasil keluaran:

Toyota
  1. Susun atur objek ke objek tatasusunan

Dalam PHP, Tatasusunan objek ialah tatasusunan yang terdiri daripada objek. Jika anda ingin menukar tatasusunan objek kepada objek tatasusunan, kami boleh menggunakan fungsi array_map() pratakrif PHP untuk mencapainya.

Contohnya:

class car {
   public $make = 'Toyota';
   public $model = 'Camry';
   public $color = 'black';
   protected $year = 2018;
}

$obj1 = new car;
$obj2 = new car;
$obj3 = new car;
$car_array = array($obj1, $obj2, $obj3);

// using array_map() to transform all objects into arrays:
$arr_array = array_map(function($object) {
    return get_object_vars($object);
}, $car_array);

// displaying the resulting array
print_r($arr_array);

Hasil keluaran:

Array
(
    [0] => Array
        (
            [make] => Toyota
            [model] => Camry
            [color] => black
        )

    [1] => Array
        (
            [make] => Toyota
            [model] => Camry
            [color] => black
        )

    [2] => Array
        (
            [make] => Toyota
            [model] => Camry
            [color] => black
        )

)
  1. Susun atur objek ke tatasusunan objek

Dalam PHP, Objek tatasusunan ialah objek yang terdiri daripada tatasusunan. Jika anda ingin menukar objek tatasusunan kepada tatasusunan objek, kami boleh menggunakan fungsi array_map() pratakrif PHP dan hantar untuk mencapainya.

Contohnya:

class car {
   public $make = 'Toyota';
   public $model = 'Camry';
   public $color = 'black';
   protected $year = 2018;
}

$arr1 = array('make' => 'Toyota', 'model' => 'Camry', 'color' => 'black');
$arr2 = array('make' => 'Honda', 'model' => 'Civic', 'color' => 'white');
$arr3 = array('make' => 'Chevrolet', 'model' => 'Malibu', 'color' => 'silver');
$car_array = array($arr1, $arr2, $arr3);

$obj_array = array_map(function($array) {
    return (object) $array;
}, $car_array);

// displaying the resulting array
print_r($obj_array);

Hasil keluaran:

Array
(
    [0] => stdClass Object
        (
            [make] => Toyota
            [model] => Camry
            [color] => black
        )

    [1] => stdClass Object
        (
            [make] => Honda
            [model] => Civic
            [color] => white
        )

    [2] => stdClass Object
        (
            [make] => Chevrolet
            [model] => Malibu
            [color] => silver
        )

)
  1. Susun atur objek ke objek tatasusunan berbilang dimensi

dalam PHP, objek tatasusunan berbilang dimensi merujuk kepada tatasusunan objek yang mengandungi pelbagai objek tatasusunan. Jika anda ingin menukar tatasusunan objek kepada objek tatasusunan berbilang dimensi, kami boleh menggunakan fungsi array_map() yang telah ditetapkan PHP dan tatasusunan bersekutu untuk mencapainya.

Contohnya:

class car {
   public $make = 'Toyota';
   public $model = 'Camry';
   public $color = 'black';
   protected $year = 2018;
}

$obj1 = new car;
$obj2 = new car;
$obj3 = new car;
$car_array = array($obj1, $obj2, $obj3);

$arr_array = array_map(function($object) {
    return get_object_vars($object);
}, $car_array);

// combining the resulting arrays into a multidimensional array
$final_array = array('cars' => $arr_array);

// displaying the final multidimensional array
print_r($final_array);

Hasil keluaran:

Array
(
    [cars] => Array
        (
            [0] => Array
                (
                    [make] => Toyota
                    [model] => Camry
                    [color] => black
                )

            [1] => Array
                (
                    [make] => Toyota
                    [model] => Camry
                    [color] => black
                )

            [2] => Array
                (
                    [make] => Toyota
                    [model] => Camry
                    [color] => black
                )

        )

)

Dalam artikel ini, kami memperkenalkan cara menukar objek dan tatasusunan kepada satu sama lain dalam PHP dan Bagaimana untuk menukar tatasusunan objek menjadi objek tatasusunan multidimensi. Penukaran ini adalah operasi yang sangat biasa dalam pembangunan PHP Dengan mahir dalam operasi ini akan membawa kemudahan yang besar kepada kerja pembangunan kami.

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