php中对象转换数组与数组转换对象实例

<p>用stdClass转换数组为对象 </p><pre class="brush:php;toolbar:false">1 $arr=array(); $arr[&#39;a&#39;]=1; $arr[&#39;b&#39;]=2; $arr[&#39;c&#39;]=3; 2 $arr=array(); $arr[&#39;a&#39;]=1; $arr[&#39;b&#39;]=2; $arr[&#39;c&#39;]=3;</pre><p> <br/></p><p>用stdClass转换后:</p><pre class="brush:php;toolbar:false">1 $object=newStdClass; $object-&gt;a=1; $object-&gt;b=2; $object-&gt;c=3; 2 $object=newStdClass; $object-&gt;a=1; $object-&gt;b=2; $object-&gt;c=3;</pre><p> <br/></p><p>stdClass是PHP的一个基类,所有的类几乎都继承这个类,所以任何时候都可以被new,可以让这个变量成为一个object。同时,这个基类又有一个特殊的地方,就是没有方法</p><p>我应用的地方是simplexml中的simplexml_load_string()上,因为返回的全是对象,如果提取数据比较麻烦,所以应用了下面的函数</p><pre class="brush:php;toolbar:false">functionobject_to_array($obj) { $_arr=is_object($obj)?get_object_vars($obj):$obj; foreach($_arras$key=&gt;$val) { $val=(is_array($val)||is_object($val))?object_to_array($val):$val; $arr[$key]=$val; } return$arr; }</pre><p>数组转换成对象</p><pre class="brush:php;toolbar:false">1 &lt;?php $array=array(1=&gt;php, 2=&gt;java, 3=&gt;c); 2 $arrayobject=newArrayObject($array); 3 var_dump($arrayobject); ?&gt;</pre><p>运行结果:</p><p>1<span class="Apple-tab-span" > </span>object(ArrayObject)#1 (1) { [&quot;storage&quot;:&quot;ArrayObject&quot;:private]=&gt; array(3) { [1]=&gt; string(3) &quot;php&quot; [2]=&gt; string(4) &quot;java&quot; [3]=&gt; string(3) &quot;c &quot; }}<br/></p><p>一个类:ArrayObject,可以直接将数组转化为对象 </p><pre class="brush:php;toolbar:false">1 $array=array(&#39;1&#39;=&gt;&#39;one&#39;, &#39;2&#39;=&gt;&#39;two&#39;, &#39;3&#39;=&gt;&#39;three&#39;); $arrayobject=newArrayObject($array); var_dump($arrayobject); $array=array(&#39;1&#39;=&gt;&#39;one&#39;, &#39;2&#39;=&gt;&#39;two&#39;, &#39;3&#39;=&gt;&#39;three&#39;); $arrayobject=newArrayObject($array); var_dump($arrayobject);</pre><p> <br/></p><p> </p><p>结果:</p><p></p><p>1<span class="Apple-tab-span" > </span></p><pre class="brush:php;toolbar:false">object(ArrayObject)#1(3){ [1]=&gt; string(3)&quot;one&quot; [2]=&gt; string(3)&quot;two&quot; [3]=&gt; string(5)&quot;three&quot; }</pre><p> <br/></p>
RangeTime:0.005990s
RangeMem:206.07 KB
返回顶部 留言