zoukankan      html  css  js  c++  java
  • php中对象转换数组与数组转换对象实例

    用stdClass转换数组为对象                                                                                 

    Php代码

    $arr = array();                                            
    $arr['a'] = 1;
    $arr['b'] = 2;
    $arr['c'] = 3;

    $arr = array();
    $arr['a'] = 1;
    $arr['b'] = 2;
    $arr['c'] = 3;



    用stdClass转换后:

    Php代码

    $object   = new StdClass;                          
    $object->a = 1;
    $object->b = 2;
    $object->c = 3;

    $object = new StdClass;
    $object->a = 1;
    $object->b = 2;
    $object->c = 3;


                                         
     


    stdClass是PHP的一个基类,所有的类几乎都继承这个类,所以任何时候都可以被new,可以让这个变量成为一个object。同时,这个基类又有一个特殊的地方,就是没有方法

    我应用的地方是simplexml中的simplexml_load_string()上,因为返回的全是对象,如果提取数据比较麻烦,所以应用了下面的函数

    function object_to_array($obj) 
    {
    $_arr = is_object($obj) ? get_object_vars($obj) : $obj;
    foreach ($_arr as $key => $val)
    {
    $val = (is_array($val) || is_object($val)) ? object_to_array($val) : $val;
    $arr[$key] = $val;
    }
    return $arr;
    }


     

    数组转换成对象

    <?php
    $array = array(1 => php,
    2 => http://www.hzhuti.com/nokia/5233/,
    3 => c );

    $arrayobject = new ArrayObject($array);

    var_dump($arrayobject);
    ?>


     


    运行结果:

    object(ArrayObject)#1 (1) { ["storage":"ArrayObject":private]=> array(3) { [1]=> string(3) "php" [2]=> string(4) "http://www.hzhuti.com/nokia/5233/" [3]=> string(3) "c " }}



    一个类:ArrayObject,可以直接将数组转化为对象                                            

    Php代码

    $array = array('1' => 'one',                       
    '2' => 'two',
    '3' => 'three');
    $arrayobject = new ArrayObject($array);
    var_dump($arrayobject);
    $array = array('1' => 'one',
    '2' => 'two',
    '3' => 'three');
    $arrayobject = new ArrayObject($array);
    var_dump($arrayobject);


     

                         
    结果:

    Php代码 

    object(ArrayObject)#1 (3) {                        
    [1]=>
    string(3) "one"
    [2]=>
    string(3) "two"
    [3]=>
    string(5) "three"
    }


               

    更多详细内容请查看:http://www.111cn.net/phper/php-cy/41861.htm

  • 相关阅读:
    虚方法(virtual)和抽象方法(abstract)的区别
    IT社区
    C#中动态加载和卸载DLL
    应用程序体系结构
    Enterprise Architect 7.0入门教程
    jQuery插件开发基础1
    asp.net页面事件执行顺序
    codesmith4.1破解版
    在Web.config配置文件中自定义配置节点
    小巧实用的节拍器软件FineMetronome介绍 原创
  • 原文地址:https://www.cnblogs.com/phpfans2012/p/2339598.html
Copyright © 2011-2022 走看看