源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

php多层数组与对象的转换实例代码

  • 时间:2022-08-20 15:50 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:php多层数组与对象的转换实例代码
多层数组和对象转化的用途很简单,便于处理WebService中多层数组和对象的转化 简单的(array)和(object)只能处理单层的数据,对于多层的数组和对象转换则无能为力。 通过json_decode(json_encode($object)可以将对象一次性转换为数组,但是object中遇到非utf-8编码的非ascii字符则会出现问题,比如gbk的中文,何况json_encode和decode的性能也值得疑虑。 [b] 下面上代码: [/b]
[u]复制代码[/u] 代码如下:
<?php  function objectToArray($d) {   if (is_object($d)) {    // Gets the properties of the given object    // with get_object_vars function    $d = get_object_vars($d);   }   if (is_array($d)) {    /*    * Return array converted to object    * Using __FUNCTION__ (Magic constant)    * for recursive call    */    return array_map(__FUNCTION__, $d);   }   else {    // Return array    return $d;   }  }  function arrayToObject($d) {   if (is_array($d)) {    /*    * Return array converted to object    * Using __FUNCTION__ (Magic constant)    * for recursive call    */    return (object) array_map(__FUNCTION__, $d);   }   else {    // Return object    return $d;   }  }  // Useage:  // Create new stdClass Object           $init = new stdClass;  // Add some test data  $init->foo = "Test data";  $init->bar = new stdClass;  $init->bar->baaz = "Testing";  $init->bar->fooz = new stdClass;  $init->bar->fooz->baz = "Testing again";  $init->foox = "Just test";  // Convert array to object and then object back to array  $array = objectToArray($init);  $object = arrayToObject($array);  // Print objects and array  print_r($init);  echo "\n";  print_r($array);  echo "\n";  print_r($object); ?>
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部