Array2object and Object2array

Convert an associative array to an anonymous object and vice versa.

Snippet information

Author:
Someone of the Drupal developers

License:
GNU GPL

Language:
PHP

Created:
04/17/2006

Updated:
04/17/2006

Tags:
,


function array2object($array) {
 
    if (is_array($array)) {
        $obj = new StdClass();
 
        foreach ($array as $key => $val){
            $obj->$key = $val;
        }
    }
    else { $obj = $array; }
 
    return $obj;
}
 
function object2array($object) {
    if (is_object($object)) {
        foreach ($object as $key => $value) {
            $array[$key] = $value;
        }
    }
    else {
        $array = $object;
    }
    return $array;
}
 
 
// example:
 
$array = array('foo' => 'bar', 'one' => 'two', 'three' => 'four');
 
$obj = array2object($array);
 
print $obj->one; // output's "two"
 
$arr = object2array($obj);
 
print $arr['foo']; // output's bar


Found a bug? Or do you have a better solution for this?
Feel free to leave a message:

Add a comment


Leave a comment

Alfredo December 04, 2007 at 17:58
I had to modify the object2array so it would go recursive and transform objects inside of an array into array as well, thought I would share

function object2array($object) {
if (is_object($object) || is_array($object)) {
foreach ($object as $key => $value) {
print "$key\r\n";
$array[$key] = $this->object2array($value);
}
}else {
$array = $object;
}
return $array;
}
Johny November 22, 2007 at 13:44
yes i have,
recursive call of the function array2object for multidimensional arrays

function array2object($arrGiven){
//create empty class
$objResult=new stdClass();

foreach ($arrLinklist as $key => $value){
//recursive call for multidimensional arrays
if(is_array($value)) $value=array2object($value);


$objResult->{$key}=$value;
}
return $objResult;
}