<?
$str=array("aa"=>"a",1=>"b");
function arr2obj($arg_array) {
$tmp = new stdClass; // start off a new (empty) object
foreach ($arg_array as $key => $value) {
if (is_array($value)) { // if its multi-dimentional, keep going :)
$tmp-> $key = arr2obj($value);
} else {
if (is_numeric($key)) {
$tt="num".$key;// can't do it with numbers :(
$tmp->$tt = $value;
continue;
}
$tmp-> $key = $value;
}
}
return $tmp; // return the object!
}
$str=arr2obj($str);
var_dump($str);
?>
就像变量不可以用纯数字一样.
单纯这样转换的话.下面的句子就可以实现.
<?php
$array =array('name'=>'gaga','sex' =>'mu');
settype($array,'object'); # or $array = (object)$array;
//print_r($array); #stdClass Object ( [name] => gaga [sex] => mu )
echo $array->name; #gaga
?>