php对象转数组的黑技术(php数组和对象)

  • 1、PHP中把对象转数组的几个方法
  • 2、总结几个对象转数组的方法
  • 3、php怎么把对象转为数组
  • 4、如何将PHP对象数组转换成普通数组
  • 5、PHP中怎么把对象转换为关联数组
  • 6、PHP把对象转换成数组

你可以循环一下,用新数组[‘key’]=旧对象-key。

也可以这样:

$array =json_decode(json_encode(simplexml_load_string($xmlString)),TRUE);

在利用jQuery EasyUI框架进行程序开发时,碰到前台将JSON格式数据传递到服务器后台,经php的json_decode函数转换成的数组由于为对象数组,php程序无法对数据进行正常处理的情况,为此需要开发一个PHP回调函数(objarray_to_array)将对象数组转换成普通数组。

/**

* 对象数组转为普通数组

*

* AJAX提交到后台的JSON字串经decode解码后为一个对象数组,

* 为此必须转为普通数组后才能进行后续处理,

* 此函数支持多维数组处理。

*

* @param array

* @return array

*/

function objarray_to_array($obj) {

$ret = array();

foreach ($obj as $key = $value) {

if (gettype($value) == “array” || gettype($value) == “object”){

$ret[$key] = objarray_to_array($value);

}else{

$ret[$key] = $value;

}

}

return $ret;

}

这里定义2个php匿名对象和数组相互转换的函数,代码如下:

function array2object($array) {

if (is_array($array)) { $obj = new StdClass(); foreach ($array as $key = $val){ $obj-$key = $val; } } else { $obj = $array; } return $obj;}function object2array($object) { if (is_object($object)) { foreach ($object as $key = $value) { $array[$key] = $value; } } else { $array = $object; } return $array;}

用法示例如下:

$array = array(‘foo’ = ‘bar’,’one’ = ‘two’,’three’ = ‘four’);$obj = array2object($array);print $obj-one; // output’s “two”$arr = object2array($obj);print $arr[‘foo’]; // output’s bar

在利用jQuery EasyUI框架进行程序开发时,碰到前台将JSON格式数据传递到服务器后台,经php的json_decode函数转换成的数组由于为对象数组,php程序无法对数据进行正常处理的情况,为此需要开发一个PHP回调函数(objarray_to_array)将对象数组转换成普通数组。

/**

* 对象数组转为普通数组

*

* AJAX提交到后台的JSON字串经decode解码后为一个对象数组,

* 为此必须转为普通数组后才能进行后续处理,

* 此函数支持多维数组处理。

*

* @param array

* @return array

*/

function objarray_to_array($obj) {

$ret = array();

foreach ($obj as $key = $value) {

if (gettype($value) == “array” || gettype($value) == “object”){

$ret[$key] = objarray_to_array($value);

}else{

$ret[$key] = $value;

}

}

return $ret;

}

可以用函数get_object_vars将对象转换为属性组成的关联数组,其语法如下:

$arr1=get_object_vars($obj);//$obj为需要转换的对象,下同

也可以用强制类型转换,如:

$arr1=(array)$obj;

或者这样:

$arr1=settype($obj,”array”);

你这种写法更适合想要把私有或者保护的属性取出来。

如果只是公有属性,完全可以使用更方便的做法:

$res = json_decode(json_encode($obj),true);

$obj是原始对象,$res则是数组了。

原创文章,作者:TRSV0,如若转载,请注明出处:https://www.506064.com/n/126172.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
TRSV0TRSV0
上一篇 2024-10-03 23:06
下一篇 2024-10-03 23:07

相关推荐

  • Python导入数组

    本文将为您详细阐述Python导入数组的方法、优势、适用场景等方面,并附上代码示例。 一、numpy库的使用 numpy是Python中一个强大的数学库,其中提供了非常丰富的数学函…

    编程 2025-04-29
  • Python返回数组:一次性搞定多种数据类型

    Python是一种多用途的高级编程语言,具有高效性和易读性的特点,因此被广泛应用于数据科学、机器学习、Web开发、游戏开发等各个领域。其中,Python返回数组也是一项非常强大的功…

    编程 2025-04-29
  • Python去掉数组的中括号

    在Python中,被中括号包裹的数据结构是列表,列表是Python中非常常见的数据类型之一。但是,有些时候我们需要将列表展开成一维的数组,并且去掉中括号。本文将为大家详细介绍如何用…

    编程 2025-04-29
  • Python操作数组

    本文将从多个方面详细介绍如何使用Python操作5个数组成的列表。 一、数组的定义 数组是一种用于存储相同类型数据的数据结构。Python中的数组是通过列表来实现的,列表中可以存放…

    编程 2025-04-29
  • Python热重载技术

    Python热重载技术是现代编程的关键功能之一。它可以帮助我们在程序运行的过程中,更新代码而无需重新启动程序。本文将会全方位地介绍Python热重载的实现方法和应用场景。 一、实现…

    编程 2025-04-29
  • 面向对象编程、类和对象

    面向对象编程(Object-Oriented Programming, OOP)是一种编程方法,它将现实世界中的事物抽象为对象(Object),对象的属性和方法被封装成类(Clas…

    编程 2025-04-29
  • Python包络平滑技术解析

    本文将从以下几个方面对Python包络平滑技术进行详细的阐述,包括: 什么是包络平滑技术? Python中使用包络平滑技术的方法有哪些? 包络平滑技术在具体应用中的实际效果 一、包…

    编程 2025-04-29
  • Python二维数组对齐输出

    本文将从多个方面详细阐述Python二维数组对齐输出的方法与技巧。 一、格式化输出 Python中提供了格式化输出的方法,可以对输出的字符串进行格式化处理。 names = [‘A…

    编程 2025-04-29
  • Java创建一个有10万个元素的数组

    本文将从以下方面对Java创建一个有10万个元素的数组进行详细阐述: 一、基本介绍 Java是一种面向对象的编程语言,其强大的数组功能可以支持创建大规模的多维数组以及各种复杂的数据…

    编程 2025-04-28
  • 微信小程序重构H5技术方案设计 Github

    本文旨在探讨如何在微信小程序中重构H5技术方案,以及如何结合Github进行代码存储和版本管理。我们将从以下几个方面进行讨论: 一、小程序与H5技术对比 微信小程序与H5技术都可以…

    编程 2025-04-28

发表回复

登录后才能评论