php – 利用 stdClass 取代陣列

[php]
<?

//這樣就可以直接替換掉陣列, 改用物件來操作了

$ary[‘a’] = ‘test’;
$ary[‘apple’][‘color’] = ‘red’;
$ary[‘apple’][‘size’] = ‘m’;
$ary[‘else’] = ‘HELLOW’;

function change($ary){
foreach ($ary as $key => $val) {
if (is_array($ary[$key])) {
$new->$key = new stdClass();
$new->$key = change($val);
}
else $new->$key = $val;
}
return $new;
}
$new = change($ary);

/*
若要將$new->a改成$new->a->b = "test"; 需要事先unset(),否則會錯誤!
而且可以直接指定下去,不需要逐一宣告new stdClass(), 例如
unset($new->a);
$new->a->b->c->d->e->f->g = "HELLOW";
*/
print_r($new);

?>
[/php]