/** * PHP 对象、数组间的转换 * * @author flyer0126 * @since 2012/05/03 **/  // 1. 利用(array)和(object),简单处理
$objTemp = (object)array();
$objTemp->a = 1;
$objTemp->b = 2;
$objTemp->c = 3;
$arrTemp = (array)$objTemp;
print_r($objTemp);
print_r($arrTemp);  /**
stdClass Object
( [a] => 1 [b] => 2 [c] => 3
)
Array
( [a] => 1 [b] => 2 [c] => 3
)
**/  // PS:简单的(array)和(object)只能处理单层的数据,对于多层的数组和对象转换则无能为力。  // 2. 多维数组与对象间的转换处理  /** * 将对象转换为多维数组 * **/
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:
$init = new stdClass;
$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);
print_r($array);
print_r($object);  /**
stdClass Object
( [foo] => Test data [bar] => stdClass Object ( [baaz] => Testing [fooz] => stdClass Object ( [baz] => Testing again ) ) [foox] => Just test
)
Array
( [foo] => Test data [bar] => Array ( [baaz] => Testing [fooz] => Array ( [baz] => Testing again ) ) [foox] => Just test
)
stdClass Object
( [foo] => Test data [bar] => stdClass Object ( [baaz] => Testing [fooz] => stdClass Object ( [baz] => Testing again ) ) [foox] => Just test
)
**/

转载于:https://blog.51cto.com/vabc1314/1879670

PHP 对象、数组间的转换相关推荐

  1. php+对象+toarray_PHP 对象、数组间的转换

    PHP 对象.数组间的转换 /** * PHP 对象.数组间的转换 * * @author flyer0126 * @since 2012/05/03 **/ // 1. 利用(array)和(obj ...

  2. java集合——集合与数组间的转换+算法

    [0]README 0.1) 本文描述转自 core java volume 1, 源代码为原创,旨在理解 java集合--集合与数组间的转换+算法 的相关知识: 0.2) for full sour ...

  3. java基础集合数组间的转换(java集合五)

    数组转变成集合 public static void main(String[] args) {// 如果数组中元素都是对象,那么变成集合时,数组中的元素就直接转成集合中的元素,// 如果数组中的元素 ...

  4. 如何将PHP对象数组转换成普通数组

    /** * 对象数组转为普通数组 * * AJAX提交到后台的JSON字串经decode解码后为一个对象数组, * 为此必须转为普通数组后才能进行后续处理, * 此函数支持多维数组处理. * * @p ...

  5. JS 数组转对象 对象转数组 对象数组互相转换

    js 对象数组互相转换 数组转换为对象 JS 数组转对象 对象转数组 对象数组互相转换 数组对象互相转换 JS 数组转对象.对象转数组(针对嵌套深层次比较深的对象或者数组) JS 声明一个函数,arr ...

  6. JS 将有规律的数组,转换成对象数组

    在工作中经常会遇到解析数据的问题,今天需要用js实现,将一个含有一些有规律数据的数组,解析成对象数组. 比如: ['123','er','456', 'fr'] ==>[{id: '123', ...

  7. jquery html对象 转换成字符串,JQuery - 将'HTMLDivElement'对象数组转换为字符串

    我过滤页面上的元素,然后检查显示的项目数,如果少于一定数量,我想使用$ .get()加载更多项目.JQuery - 将'HTMLDivElement'对象数组转换为字符串 我正在使用同位素插件,它要求 ...

  8. ArrayList和数组间的相互转换

    ArrayList和数组间的相互转换 http://wanglihu.iteye.com/blog/243238 开发中不免碰到List与数组类型之间的相互转换,举一个简单的例子: Java代码   ...

  9. JavaArrayList和数组间的相互转换

    一.ArrayList转换为数组 ArrayList提供public T[] toArray(T[] a)方法返回一个按照正确的顺序包含此列表中所有元素的数组,返回数组的运行时类型就是指定数组的运行时 ...

最新文章

  1. luogu P4085 [USACO17DEC]Haybale Feast(尺取法 + 线段树)
  2. Word那些你不知道的快捷功能
  3. python中表示换行的符号_对Python字符串中的换行符和制表符介绍
  4. SQL逻辑查询语句执行顺序
  5. php 抽象类、接口和构析方法
  6. .NETCore3.1中的Json互操作最全解读-收藏级
  7. Shiro的鉴权方式
  8. Silverlight/Windows8/WPF/WP7/HTML5周学习导读(8月20日-8月26日)
  9. [转载] Java中的strictfp关键字
  10. 计算机职业规划范文300字,我的职业生涯规划,300字
  11. python numpy 下载地址
  12. 批量微信号码过滤程序
  13. 在VS Code上搭建C/C++环境
  14. oracle 索引快速全扫描,使用索引快速全扫描(Index FFS)避免全表扫描的若干场景
  15. 跑步耳机哪种好,适合运动佩戴的蓝牙耳机分享
  16. 闲置oppoR9sk---获取root权限
  17. java解压出来损坏_ZipOutputStream创建损坏的(可解压缩的)zip文件
  18. 周鸿祎为短视频狂砸百亿
  19. java扫雷布雷算法_扫雷的布雷算法
  20. 侯捷C++视频笔记——C++面向对象高级编程(上)

热门文章

  1. os.system方法
  2. linux io体系结构,Linux IO体系结构
  3. python 中参数 ,解包和变量的入门
  4. 笔记-计算机网络基础-计算机网络分类
  5. SpringBoot中实现连接多个Redis分别读写数据
  6. Windows服务器上Mysql为设置允许远程连接提示:not allowed to connect to this MySQL server
  7. Input框设置只能输入中文
  8. Thymeleaf提取公共页面(从实例入手,以inspinia模板为例)
  9. 开发中总结的dart相关的技巧
  10. 2、Mysql 8.0.20最新版本修改密码