Created
December 17, 2010 04:18
-
-
Save victorbstan/744478 to your computer and use it in GitHub Desktop.
recursively cast a PHP object to array
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/* | |
This function saved my life. | |
found on: http://www.sitepoint.com/forums//showthread.php?t=438748 | |
by: crvandyke | |
It takes an object, and when all else if/else/recursive functions fail to convert the object into an associative array, this one goes for the kill. Who would'a thunk it?! | |
*/ | |
$array = json_decode(json_encode($object), true); |
just in case performance matters
function objectToArray($object)
{
if(!is_object($object) && !is_array($object)) {
return $object;
}
return array_map('objectToArray', (array) $object);
}
from SO
$array = json_decode(json_encode($object), true);
Absolutely brilliant. You, sir, are a genius.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
The initial
will not work straight like this if your nested objects are custom, not
stdClass
type objects. For this to work on these too you should implementJsonSerializable
interface on your custom nested objects. See the respective PHP documentation.