/**
* 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
)
**/
分享到:
相关推荐
### JavaScript 解析 PHP 数组对象 #### 一、概述 在 Web 开发中,JavaScript 和 PHP 是两种非常重要的编程语言。PHP 主要用于服务器端的数据处理与逻辑控制,而 JavaScript 则负责客户端的交互和数据展示。在实际...
在PHP开发中,经常需要将对象数组转换成普通数组,尤其是在与外部API接口交互时,接口返回的数据常常是对象数组形式,而业务逻辑中需要以普通数组的方式处理这些数据。本文将详细说明如何在PHP中实现对象数组到普通...
这个函数接收一个数组 `$e` 作为参数,其目标是将数组转换为对象。如果输入不是数组,函数直接返回。接着,它遍历数组中的每个元素,如果元素是数组或对象,那么递归调用 `arrayToObject()` 将该元素转换为对象。...
接下来,我们要介绍如何将PHP对象转换回数组。`objectToArray`函数接收一个对象作为参数,将对象的每个属性转换为数组元素,同时递归处理嵌套的对象和数组: ```php function objectToArray($e){ $e=(array)$e; ...
在 PHP 中,数组和 XML 之间的转换是一种常见的需求,特别是在数据交换、存储或者解析 XML 文件时。本篇文章将深入探讨如何在 PHP 中实现数组到 XML 的转换,并提供两种不同的实现方式。 首先,我们来看第一种方法...
php将对象转成数组,php将xml转成数组 一个自定义函数搞定纯原创。
将二维数组转换为HashMap,可以使数据结构更加紧凑,便于进行键值查找操作。例如,当处理大量具有唯一标识符的数据时,这种转换可以提高查找效率。 在使用这个类之前,我们需要先将其解压并引入到我们的PHP脚本中。...
总结来说,PHP和JavaScript中数组去重的方法各有特色,PHP需要针对二维数组自定义解决方案,而JavaScript则提供了原生的Set对象和现代语法糖。理解这些方法并根据具体场景灵活运用,能提高代码质量和效率。
数组则用方括号[]表示,元素间以逗号分隔,如:`["apple", "banana", "orange"]`。 2. **ASP解析JSON字符串**: 在经典ASP中,没有内置的JSON解析库。不过可以使用第三方库,如`aspjson`,这是一个流行的ASP JSON...
在某些情况下,我们需要将数组和对象进行相互转换,以便更好地适应程序的需求。以下将详细介绍如何在PHP中实现这种转换。 首先,我们要了解`get_object_vars()`函数。这个函数用于获取一个对象的所有属性,并以关联...
在PHP编程中,将数组转换为JSON对象是一个常见的任务,特别是在处理前端与后端的数据交互时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它易于人阅读和编写,同时也易于机器解析和生成。PHP...
我们可以使用`get_object_vars()`函数将`SimpleXMLElement`对象转换为关联数组: ```php $itemsArray = array_map('get_object_vars', $items); ``` 这样,每个`$itemsArray`的元素就是一个普通的PHP数组,键是...
因此,深入理解对象转换成数组的过程,并掌握如何兼容多维数组类型,对于进行数据处理的PHP开发者来说是非常重要的。 首先,要进行对象到数组的转换,我们通常会使用PHP内置的`get_object_vars`函数。这个函数可以...
由于JavaScript不能直接理解PHP的数据结构,所以需要将PHP的数组转换成JSON格式,这是JavaScript能够识别的数据格式。 转换过程大致如下: 1. PHP端,将三联地区数组转换成JSON字符串,可以使用PHP的`json_encode()...
有时候需要在数组与对象之间进行转换,比如在调用Web服务时,可能需要将数组转换为对象,以便符合某些接口的要求;或者在接收外部数据时,可能需要将对象转换为数组以便进行进一步处理。 接下来,我们来详细看一下...
简单的(array)和(object)只能处理单层的数据,对于多层的数组和对象转换则无能为力。 通过json_decode(json_encode($object)可以将对象一次性转换为数组,但是object中遇到非utf-8编码的非ascii字符则会出现问题,...
在PHP中,数组是一种非常灵活的数据类型,它不仅可以存储简单的数据类型如字符串和数字,还可以存储复杂的对象、其他数组等。数组的索引可以是整数也可以是字符串,因此PHP的数组是真正的关联数组。此外,PHP数组还...