Australia's Leading Digital Marketing Experts. T. 1300 235 433  |  Aggregation Enquires Welcome

Convert Object (With Protected Values) To Associative Array

If you need to quickly and easily convert an object to an associative array, the following is a simple solution:

1
$array = json_decode(json_encode($object), true);

In many cases - and if the above doesn't float your boat - you may simply typecast it:

1
$array =  (array) $object;

However, neither of the above solutions work with objects that contain protected and/or private values. In our case, we were trying to access protected header values from WP's wp_remote_get function. The following function will return an associative array with values accessible via traditional means.

1
<?php 
2
/*
3
 Convert Object (With Protected Values) To Associative Array
4
 http://www.beliefmedia.com/object-to-array
5
*/
6
 
7
function beliefmedia_objarray($object) {
8
    $reflectionClass = new ReflectionClass(get_class($object));
9
    $array = array();
10
    foreach ($reflectionClass->getProperties() as $property) {
11
        $property->setAccessible(true);
12
        $array[$property->getName()] = $property->getValue($object);
13
        $property->setAccessible(false);
14
    }
15
  return $array;
16
}

Like this article?

Share on facebook
Share on Facebook
Share on twitter
Share on Twitter
Share on linkedin
Share on Linkdin
Share on pinterest
Share on Pinterest

Leave a comment