php教程数组与对象相互转换方法

function arrayToObject($e){

if( gettype($e)!='array' ) return;

foreach($e as $k=>$v){

if( gettype($v)=='array' || getType($v)=='object' )

$e[$k]=(object)arrayToObject($v);

}

return (object)$e;

}

function objectToArray($e){

$e=(array)$e;

foreach($e as $k=>$v){

if( gettype($v)=='resource' ) return;

if( gettype($v)=='object' || gettype($v)=='array' )

$e[$k]=(array)objectToArray($v);

}

return $e;

}

关于数组转换为对象,在phpx有看到一些帖子讨论

$andy = array();

$andy['a'] = 1;

$andy['b'] = 2;

$andy['c'] = 3;

把andy强制转换为数组,似乎引用的方便些了,主要是变成了->

$andy = array();

$andy = (object)$andy;

$andy->a = 1;

$andy->b = 2;

$andy->c = 3;

还嫌它麻烦,再用StdClass

$andy = new StdClass;

$andy->a = 1;

$andy->b = 2;

$andy->c = 3;

stdClass 是PHP的一个基类,所有的类几乎都继承这个类,所以任何时候都可以被new,可以

让这个变量成为一个object。同时,这个基类又有一个特殊的地方, 就是没有方法。在这里

还有一点是对象和数组资源耗费的问题:PHP5的对象的独特性,对象在任何地方被调用,都

是引用地址型的,所以相对消耗的资源会少一 点。在其它页面为它赋值时是直接修改,而不

是引用一个拷贝。数组在程序的使用中应该是最方便的,然而数组的每次被引用($a = $b)

,其实都是创建了一个副本,而且,数组被unset后,还是占用了内存(没有测试过)。还有

一个函数arrayobject,可以直接将数组转化为 对象这也是一个好办法哦。

ArrayObject::__construct -- Construct a new array object

$array = array('1' => 'one',

'2' => 'two',

'3' => 'three');

$arrayobject = new ArrayObject($array);

print_r($arrayobject);

?>

ArrayObject Object

(

[1] => one

[2] => two

[3] => three

)

试验了一下对象转换为数组,也可以强制转换

$arr = (array)$obj;

如下例子转换结果,可对比:

Tag Object

(

[name] => main

[text] =>

[parrent] =>

[content] =>

[props教程] => Array

(

)

[inner] => Array

(

)

[level] => 0

)

Array

(

[name] => main

[text] =>

[parrent] =>

[content] =>

[props] => Array

(

)

[inner] => Array

(

)

[level] => 0

)

php一个数组赋值给对象,php数组与对象相互转换方法相关推荐

  1. android给数组添加新元素_「数组赋值」什么是数组、如何创建数组、数组赋值、数组增加一个新元素 - seo实验室...

    数组赋值 一起组团(什么是数组) 我们知道变量用来存储数据,一个变量只能存储一个内容.假设你想存储10个人的姓名或者存储20个人的数学成绩,就需要10个或20个变量来存储,如果需要存储更多数据,那就会 ...

  2. access vba 常量数组赋值_聊聊 VBA 数组的那些坑

    为什么使用数组? 1. 缩减工作薄文件大小,提高运行效率 一般而言只是使用 Excel 的内置工作表函数,在运算方面还是很高效的,但有时因为一个单元格牵扯的计算太多,比如调用多单元格数据,对结果文本进 ...

  3. C语言:找出一个已经赋值的二维数组里面的最大值和最小值

    分析: 这个题目相对来说比较好理解,首先我们需要了解二位数组的下标是什么意思,a[3][2]这个数组代表的意思是这是一个具有3行2列的数组,数组名叫做a.数组名后面的第一个数字代表这个二维数组的行数, ...

  4. php object 数组赋值,php object转数组示例

    原本是这样格式的数据: object(Thrift\Server\PageCards)#32 (3) { ["cards"]=> array(10) { [0]=> o ...

  5. c语言大数组赋值,C语言之数组(上)

    因为我们随着面临的问题越来越复杂,要用的变量越来越多,为了偷懒,就把同类型的变量一块儿定义了--数组的诞生,但是很烦的是我们要在使用一个更方便的工具的时候得知道它是怎么用的,接下来就让我们一起捋捋这些 ...

  6. 给字符数组赋值java_给字符数组赋值的方法

    main() { char s[30]; strcpy(s, "Good News!"); /*给数组赋字符串*/ . . . } 上面程序在编译时, 遇到char s[30]这条 ...

  7. 使用汇编语言完成下列C的数组赋值,汇编中的数组分配和指针的实现代码

    数组简介 如果各位猿友是一路跟着LZ看到这里的,那么数组的定义就非常简单了,它就是一个相同数据类型的数据集合.数组存储在一系列逻辑上连续的内存块当中,之所以说是逻辑上连续,是因为整个内存或者说存储器本 ...

  8. 二维数组赋值 java_java二维数组的赋值方法

    在java数组中,我们想要知道其长度,可以通过赋值的方法来实现.在正式开始对数组赋值前,我们要明确其中的下标问题.在准备步骤上,先找到高维的位置,再确定低纬的下标,就可以进行相关的赋值操作了.下面就具 ...

  9. java 数组赋值_java中为数组赋值的方法

    java中为数组赋值的方法 发布时间:2020-06-25 14:31:36 来源:亿速云 阅读:184 作者:Leah 这期内容当中小编将会给大家带来有关java中为数组赋值的方法,文章内容丰富且以 ...

  10. 使用for循环为一个数组赋值,并将数组倒序输出。

    #include<stdio.h> #define N 10 int main() { int a[N]={0,1,2,3,4,5,6,7,8,9}; int i; int n print ...

最新文章

  1. share_ptr_c++11
  2. [Jsp] 如何在JSP页面快速输出从Servlet接收的数据_看JSTL常用C标签的威力
  3. POJ3160强连通+spfa最长路(不错)
  4. [Step By Step]SAP HANA创建层次结构的属性视图(Hierarchy Attribute View)
  5. ABAP动态取得数据的方法
  6. 20169207《Linux内核原理与分析》第五周作业
  7. The view 'Index' or its master was not found or no view engine supports the
  8. 华为上机考试题系列(一):牛客网的奇葩操作
  9. java设计模式之UML③类图讲解多个类之间的关系
  10. spring(7)spring mvc 的高级技术
  11. [Bugku][Web][CTF] 16-29 write up
  12. Java学习前,需要掌握的一些基础知识
  13. 新款iPad Pro曝光:搭载A14x仿生芯片 支持5G
  14. python天天向上代码解析-python列表解析和生成器表达式
  15. magic,imagesc,drawnow
  16. 部署Unbound实现DNS服务
  17. 帝国霸业服务器无限加载,帝国霸业银河生存1.0正式版开局生存流程指南
  18. springboot修改请求头
  19. yota3墨水屏调节对比度_YOTA3墨水屏“直通”技术取代旧“投射”功能,体验全面升级-非常在线...
  20. Jmeter源码分析(二)

热门文章

  1. Tengine Web服务器概述
  2. 简化可视SLAM应用程序的开发
  3. 全卷积目标检测:FCOS
  4. 客快物流大数据项目(十五):DockeFile常用命令
  5. 客快物流大数据项目(十二):Docker的迁移与备份
  6. 修改或隐藏Nginx的版本号
  7. module.exports 和 export default
  8. POJ 3268 D-Silver Cow Party
  9. css中float用法
  10. 面试题----中断的一些知识