Start with simply typecasting the line:-
$array = (array) $yourObject;
If an object is converted to an array, the result is an array whose elements are the object's properties. The keys are the member variable names, with a few notable exceptions such as the integer properties are inaccessible and protected variables have a '*' prepended to the variable name. These prepended values have null bytes on either side.
Example: Simple Object
$object = new StdClass; 
$object->foo = 1; 
$object->bar = 2; 
var_dump( (array) $object );
Output:
array(2) { 
        'foo' => int(1) 
        'bar' => int(2) 
}
Example: Complex Object
class Foo 
{ 
        private $foo; 
        protected $bar; 
        public $baz; 
        public function __construct() 
        { 
                  $this->foo = 1; 
                  $this->bar = 2; 
                  $this->baz = new StdClass; 
        } 
} 
var_dump( (array) new Foo );
Output (with \0s edited in for clarity):
array(3) { 
      '\0Foo\0foo' => int(1) 
      '\0*\0bar' => int(2) 
      'baz' => class stdClass#2 (0) {} 
}
Output with var_export instead of var_dump:
array ( 
      '' . "\0" . 'Foo' . "\0" . 'foo' => 1, 
      '' . "\0" . '*' . "\0" . 'bar' => 2, 
      'baz' => 
      stdClass::__set_state(array( 
  )), 
)
Typecasting this way will not do deep casting of the object graph and you need to apply the null bytes to access any non-public attributes. So this works best when casting StdClass objects or objects with only public properties.