Heim  >  Artikel  >  Backend-Entwicklung  >  So konvertieren Sie Objekte in PHP in Arrays

So konvertieren Sie Objekte in PHP in Arrays

PHPz
PHPzOriginal
2023-04-18 10:19:05503Durchsuche

PHP ist eine objektorientierte Programmiersprache, daher sind Objekte in PHP sehr verbreitet, und auch die Konvertierung zwischen Objekten und Arrays ist ein häufig erforderlicher Vorgang. In diesem Artikel stellen wir die Konvertierung von Objekten und Arrays in PHP sowie die Konvertierung von Objektarrays in mehrdimensionale Arrayobjekte vor.

  1. Objekt in Array

Verwenden Sie die integrierte Funktion von PHP, um ein Objekt in ein Array umzuwandeln. Sie können get_object_vars() verwenden, das Objekteigenschaften in ein assoziatives Array umwandelt.

Zum Beispiel:

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

Ausgabeergebnis:

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

Hinweis: Die Funktion get_object_vars() kann nur öffentliche Attribute (public) konvertieren. Weder geschützte noch private Attribute können konvertiert werden.

  1. Array in Objekt

Verwenden Sie die in PHP integrierten Funktionen, um Arrays in Objekte umzuwandeln. Sie können (Objekt) verwenden und auch die erzwungene Typkonvertierung verwenden.

Zum Beispiel:

$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

Ausgabeergebnis:

Toyota
  1. Objektarray zu Arrayobjekt

In PHP ist ein Objektarray ein Array, das aus Objekten besteht. Wenn Sie ein Array von Objekten in ein Array-Objekt konvertieren möchten, können wir dazu die vordefinierte Funktion array_map() von PHP verwenden.

Zum Beispiel:

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

Ausgabeergebnis:

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. Array-Objekt zu Objekt-Array

In PHP ist ein Array-Objekt ein Objekt, das aus einem Array besteht. Wenn Sie ein Array-Objekt in ein Array von Objekten konvertieren möchten, können wir die vordefinierte Funktion array_map() von PHP verwenden und umwandeln, um dies zu erreichen.

Zum Beispiel:

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

Ausgabeergebnis:

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. Objekt-Array zu mehrdimensionalem Array-Objekt

In PHP bezieht sich ein mehrdimensionales Array-Objekt auf ein Objekt-Array, das mehrere Array-Objekte enthält. Wenn Sie ein Objekt-Array in ein mehrdimensionales Array-Objekt umwandeln möchten, können wir dazu die vordefinierte Funktion array_map() von PHP und assoziative Arrays verwenden.

Zum Beispiel:

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

Ausgabeergebnis:

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
                )

        )

)

In diesem Artikel stellen wir vor, wie man Objekte und Arrays in PHP ineinander umwandelt und wie man Objektarrays in mehrdimensionale Array-Objekte umwandelt. Diese Konvertierungen sind sehr häufige Vorgänge in der PHP-Entwicklung. Wenn wir diese Vorgänge beherrschen, wird unsere Entwicklungsarbeit sehr erleichtert.

Das obige ist der detaillierte Inhalt vonSo konvertieren Sie Objekte in PHP in Arrays. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn