Maison >développement back-end >Problème PHP >Comment convertir des objets en tableaux en PHP

Comment convertir des objets en tableaux en PHP

PHPz
PHPzoriginal
2023-04-18 10:19:05568parcourir

PHP est un langage de programmation orienté objet. Par conséquent, les objets sont très courants en PHP, et la conversion entre objets et tableaux est également une opération fréquemment requise. Dans cet article, nous présenterons la conversion d'objets et de tableaux en PHP, et comment convertir des tableaux d'objets en objets tableau multidimensionnels.

  1. Object to Array

Utilisez la fonction intégrée de PHP pour convertir un objet en tableau Vous pouvez utiliser get_object_vars(), qui convertit les propriétés de l'objet en un tableau associatif.

Par exemple :

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

Résultat de sortie :

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

Remarque : La fonction get_object_vars() ne peut convertir que les attributs publics (public). Ni les attributs protégés ni privés ne peuvent être convertis.

  1. Array to object

Utilisez les fonctions intégrées de PHP pour convertir des tableaux en objets. Vous pouvez utiliser (objet), et vous pouvez également utiliser la conversion de type forcée.

Par exemple :

$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

Résultat de sortie :

Toyota
  1. Tableau d'objets vers un objet de tableau

En PHP, un tableau d'objets est un tableau composé d'objets. Si vous souhaitez convertir un tableau d'objets en un objet tableau, nous pouvons utiliser la fonction array_map() prédéfinie de PHP pour y parvenir.

Par exemple :

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

Résultat de sortie :

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 d'objet à objet array

En PHP, un objet tableau est un objet composé d'un tableau. Si vous souhaitez convertir un objet tableau en un tableau d'objets, nous pouvons utiliser la fonction array_map() prédéfinie de PHP et effectuer un cast pour y parvenir.

Par exemple :

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

Résultat de sortie :

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. Tableau d'objets vers un objet tableau multidimensionnel

En PHP, un objet tableau multidimensionnel fait référence à un tableau d'objets contenant plusieurs objets tableau. Si vous souhaitez convertir un tableau d'objets en un objet tableau multidimensionnel, nous pouvons utiliser la fonction array_map() prédéfinie de PHP et des tableaux associatifs pour y parvenir.

Par exemple :

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

Résultat de sortie :

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
                )

        )

)

Dans cet article, nous présentons comment convertir des objets et des tableaux les uns dans les autres en PHP, et comment convertir des tableaux d'objets en objets tableau multidimensionnels. Ces conversions sont des opérations très courantes dans le développement PHP. La maîtrise de ces opérations apportera une grande commodité à notre travail de développement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn