Hi,

Ik ben wat aan het spelen met het omzetten van array's naar objecten. Persoonlijk vind ik $dit->namelijk->makkelijker $typen['dan']['deze']['manier']. Alleen nu het probleem:


$foo['level1'] = 'value';
$bar = (object) $foo;
echo $bar->level1; // value

unset($foo);

$foo['level1']['level2'] = 'value';
$bar = (object) $foo;
echo $bar->level1->level2; // NULL
echo $bar->level1['level2']; // value


Schijnbaar pakt hij alleen het eerste level; dat heeft weinig nut natuurlijk :) . Doe ik wat fout, of kan dit gewoon niet? (PHP Version 5.2.6)
het is niet meer dan logisch, wat je wel zou kunnen doen is het volgende:

<?php
function arrToObj ($arrElement) {
if (is_array($arrElement)) {
return (object) array_map('arrToObj',$arrElement);
} else {
return $arrElement;
}
}

$array = array('foo' => array('test','blub'), 'bar' => 'waarde');

$objs = (object) array_map('arrToObj',$array);
?>
zo kan je on-eindig diepe arrays omzetten naar objecten.
Handig; thanks!

Reageren