php+对象+toarray_PHP 对象、数组间的转换
PHP 对象、数组间的转换
/**
* 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
)
**/
php+对象+toarray_PHP 对象、数组间的转换相关推荐
- PHP 对象、数组间的转换
/** * PHP 对象.数组间的转换 * * @author flyer0126 * @since 2012/05/03 **/ // 1. 利用(array)和(object),简单处理 $obj ...
- java集合——集合与数组间的转换+算法
[0]README 0.1) 本文描述转自 core java volume 1, 源代码为原创,旨在理解 java集合--集合与数组间的转换+算法 的相关知识: 0.2) for full sour ...
- java基础集合数组间的转换(java集合五)
数组转变成集合 public static void main(String[] args) {// 如果数组中元素都是对象,那么变成集合时,数组中的元素就直接转成集合中的元素,// 如果数组中的元素 ...
- json字符串、json对象、数组之间的转换
记录一下 json字符串转化成json对象 // jquery的方法 var jsonObj = $.parseJSON(jsonStr) //js 的方法 var jsonObj = JSON.pa ...
- php 多层 对象,php多层数组和对象的转换
多层数组和对象转化的用途很简单,便于处理WebService中多层数组和对象的转化 简单的(array)和(object)只能处理单层的数据,对于多层的数组和对象转换则无能为力. 通过json_dec ...
- java String、Json对象与byte数组转换
用途 测试String对象与byte数组转换方式 测试Json对象与byte数组转换方式 源代码 import java.io.UnsupportedEncodingException; import ...
- 【数据格式转换】js如何将对象嵌套的数组数据取出来加到对象里,数据格式转换[{[],[]},{[],[]}] 转[{},{}]
在前后分离的大背景下,前端数据渲染过程中,有时候后端返回的数据结构并不是前端需要的格式,如果后端不处理,这个时候就需要前端自己处理. 假如拿到的数据是这样的: list:[{id: '01',name ...
- 字符串对象转数组对象_js对象转数组的方法 js怎么将数组对象转变成字符串
只需要一句,arr.__proto__=[];但是要注意浏览器支持__proto__才行,最新的浏览器应该都支持. 以下两种都可以解决此问题: function transform(obj){ var ...
- python 全栈开发,Day51(常用内置对象,函数,伪数组 arguments,关于DOM的事件操作,DOM介绍)...
昨日内容回顾 1.三种引入方式1.行内js <div onclick = 'add(3,4)'></div>//声明一个函数function add(a,b){}2.内接js& ...
最新文章
- try catch finally语句详解
- BM22 比较版本号
- Android FrameWork学习(一)Android 7 0系统源码下载 编译
- python(9)-变量、input函数
- ByteArrayOutputStream和ByteArrayInputStream的简单使用
- Django DRF认证组件/权限组件/序列化组件综合总结(完整版)
- Python游戏开发实战:飞机大战(含代码)
- 基于PyQt5实现保存网页为pdf
- 一、super slomo介绍
- linux 建立ssh隧道,在Linux、Windows、macOS上创建SSH隧道并通过SSH隧道连接到MySQL
- 淘宝天猫x-sign算法
- python中binomial_二项堆python实现——eager binomial heap
- unable to load Private Key 6572:error:0906D06C:PEM routines:PEM_read_bio:no start line:.\crypto\pem\
- 块存储、文件存储、对象存储这三者的差别
- vue按钮10S秒后禁用
- 解决浏览器突然上不了网的问题
- 谈谈JS中的函数劫持
- 《比尔总动员》截图赢数码大奖
- matlab计算幅度
- 黑客攻击-程序破解(1)
热门文章
- C# 中的数字分隔符 _
- 微软为 Visual Studio 推出新的 Razor 编辑器
- 抱歉,请不要把 “业务逻辑层” 理解为 “业务中台”
- 让我的 .NET Core 博客系统支持 Docker
- .NET Core开发实战(第18课:日志框架:聊聊记日志的最佳姿势)--学习笔记(下)...
- 【.NET Core 跨平台 GUI 开发】第三篇:Gtk# 表格布局与事件处理
- 2019 .NET China Conf:路一直都在,社区会更好
- 深入探究Kubernetes - 初识容器
- 程序员过关斩将--互联网人必备知识cookie和session认证
- 使用Kubeadm创建k8s集群之节点部署(三十二)