Home >Backend Development >PHP Problem >How to convert objects to arrays in PHP

How to convert objects to arrays in PHP

PHPz
PHPzOriginal
2023-04-18 10:19:05558browse

PHP is an object-oriented programming language. Therefore, objects are very common in PHP, and conversion between objects and arrays is also a frequently required operation. In this article, we will introduce the conversion of objects and arrays in PHP, and how to convert object arrays into multi-dimensional array objects.

  1. Object to Array

Use PHP's built-in function to convert an object into an array. You can use get_object_vars(), which converts object properties into an associative array.

For example:

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

Output result:

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

Note: The get_object_vars() function can only convert public attributes (public). Neither protected nor private attributes can be converted.

  1. Array to object

Use PHP built-in functions to convert arrays into objects. You can use (object), and you can also use forced type conversion.

For example:

$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

Output result:

Toyota
  1. Object array to array object

In PHP, object array is composed of Array of objects. If you want to convert an array of objects into an array object, we can use PHP's predefined array_map() function to achieve this.

For example:

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

Output result:

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. Convert array object to object array

In PHP, the array object is composed of An object composed of an array. If you want to convert an array object to an array of objects, we can use PHP's predefined array_map() function and cast to achieve it.

For example:

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

Output result:

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. Object array to multi-dimensional array object

In PHP, multi-dimensional array object Refers to an object array containing multiple array objects. If you want to convert an object array into a multidimensional array object, we can use PHP's predefined array_map() function and associative arrays to achieve it.

For example:

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

Output result:

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 this article, we introduce how to convert objects and arrays into each other in PHP, and how to convert object arrays is a multidimensional array object. These conversions are very common operations in PHP development. Being proficient in these operations will bring great convenience to our development work.

The above is the detailed content of How to convert objects to arrays in PHP. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn