2016-11-17 11:37:19 10507次浏览 2条回答 0 悬赏 10 金钱

Yii2数组转化为对象

  • 回答于 2016-11-17 13:57 举报

    $arr = array('id'=>1,'name'=>'aaa');
    $arr = json_encode($arr);
    $arr = json_decode($arr);
    var_dump($arr);

    object(stdClass)[1]
    public 'id' => int 1
    public 'name' => string 'aaa' (length=3)

    , 觉得很赞
  • 回答于 2016-11-18 09:54 举报

    /**

    • 对象和数组的相互转化
    • @link
      */
      class Test{
      public $a;
      public $b;
      public function __construct($a) {
        $this->a = $a;
      

      }
      }

    //对象转数组,使用get_object_vars返回对象属性组成的数组
    function objectToArray($obj){

    $arr = is_object($obj) ? get_object_vars($obj) : $obj;
    if(is_array($arr)){
        return array_map(__FUNCTION__, $arr);
    }else{
        return $arr;
    }
    

    }

    //数组转对象
    function arrayToObject($arr){

    if(is_array($arr)){
        return (object) array_map(__FUNCTION__, $arr);
    }else{
        return $arr;
    }
    

    }

    $test = new Test('test1');
    $test->b = new Test('test2');

    print_r($test);
    $array = objectToArray($test);
    print_r($array);
    $object = arrayToObject($array);
    print_r($object);

    1 条回复
    回复于 2016-11-18 11:18 回复

    核心在于使用了魔术常量和递归函数,代码简介明了,可以标为最佳答案了

您需要登录后才可以回答。登录 | 立即注册
今之人兮
CEO

今之人兮 郑州

注册时间:2016-05-04
最后登录:2021-09-29
在线时长:49小时14分
  • 粉丝8
  • 金钱16365
  • 威望10
  • 积分16955

热门问题