Open In App

Convert an object to associative array in PHP

Last Updated : 04 Jul, 2024
Summarize
Comments
Improve
Suggest changes
Like Article
Like
Share
Report
News Follow

An object is an instance of a class. It is simply a specimen of a class and has memory allocated. The array is the data structure that stores one or more similar types of values in a single name but an associative array is different from a simple PHP array. An array that contains a string index is called an associative array. It stores element values in association with key values rather than in linear index order.

Here we have some common methods

Method 1: Using json_decode and json_encode method

The json_decode function accepts JSON encoded string and converts it into a PHP variable on the other hand json_encode returns a JSON encoded string for a given value.

Syntax: 

$myArray = json_decode(json_encode($object), true);

Example: 

<?php
class sample {
    
    /* Member variables */
    var $var1;
    var $var2;
    
    function __construct( $par1, $par2 ) 
    {
        $this->var1 = $par1;
        $this->var2 = $par2;
    }
}

// Creating the object
$myObj = new sample(1000, "second");
echo "Before conversion: \n";
var_dump($myObj);

// Converting object to associative array
$myArray = json_decode(json_encode($myObj), true);
echo "After conversion: \n";
var_dump($myArray);
?>

Output
Before conversion: 
object(sample)#1 (2) {
  ["var1"]=>
  int(1000)
  ["var2"]=>
  string(6) "second"
}
After conversion: 
array(2) {
  ["var1"]=>
  int(1000)
  ["var2"]=>
  string(6) "second"
}

Method 2: Type Casting object to an array

Typecasting is the way to utilize one data type variable into the different data type and it is simply the explicit conversion of a data type. It can convert a PHP object to an array by using typecasting rules supported in PHP.
Syntax: 
 

$myArray = (array) $myObj;

Example: 

<?php
class bag {
    
    /* Member variables */
    var $item1;
    var $item2;
    var $item3;
    
    function __construct( $par1, $par2, $par3) 
    {
        $this->item1 = $par1;
        $this->item2 = $par2;
        $this->item3 = $par3;
    }
}

// Create myBag object
$myBag = new bag("Mobile", "Charger", "Cable");
echo "Before conversion : \n";
var_dump($myBag);

// Converting object to an array
$myBagArray = (array)$myBag;
echo "After conversion : \n";
var_dump($myBagArray);
?>

Output
Before conversion : 
object(bag)#1 (3) {
  ["item1"]=>
  string(6) "Mobile"
  ["item2"]=>
  string(7) "Charger"
  ["item3"]=>
  string(5) "Cable"
}
After conversion : 
array(3) {
  ["item1"]=>
  string(6) "Mobile"
  ["item2"]=>
  string(7) "Charger"
  ["item3"]=>
  string(5) "Cable"
}

Method 3: Using get_object_vars() Function

The get_object_vars() function returns an associative array containing the properties of the given object.

Syntax:

$myArray = get_object_vars($object);

Example:

<?php
class car
{
    /* Member variables */
    var $make;
    var $model;
    var $year;

    function __construct($make, $model, $year)
    {
        $this->make = $make;
        $this->model = $model;
        $this->year = $year;
    }
}

// Create car object
$myCar = new car("Toyota", "Corolla", 2020);
echo "Before conversion: \n";
var_dump($myCar);

// Converting object to an associative array
$myCarArray = get_object_vars($myCar);
echo "After conversion: \n";
var_dump($myCarArray);

?>

Output
Before conversion: 
object(car)#1 (3) {
  ["make"]=>
  string(6) "Toyota"
  ["model"]=>
  string(7) "Corolla"
  ["year"]=>
  int(2020)
}
After conversion: 
array(3) {
  ["make"]=>
  string(6) "Toyota"...

PHP is a server-side scripting language designed specifically for web development. You can learn PHP from the ground up by following this PHP Tutorial and PHP Examples.



Next Article

Similar Reads

three90RightbarBannerImg