PHP中把对象数组转换成普通数组的方法

最近在用ThinkPHP开发一个京东服务市场的应用,然而京东服务市场接口返回的数据是个对象数组。然而需要一个个属性取出来放到数组里面然后再利用ThinkPHP的addAll或者add方法写入数据库。然而每次返回的字段有几十个,每次这么拼接都要崩溃了。果然还是那句话,当你感到无法忍受的时候你就会想办法改变。于是想了下,如果有个函数传个对象数组进去可以自动转成普通数组就好了。因而万能的互联网搜索又来了。百度了一通。。。果然有前辈已经处理过了,在此记录一下。

代码如下:

/**
* [std_class_object_to_array 将对象转成数组]
* @param [stdclass] $stdclassobject [对象]
* @return [array] [数组]
*/
function std_class_object_to_array($stdclassobject)
{
  $_array = is_object($stdclassobject) ? get_object_vars($stdclassobject) : $stdclassobject;

  foreach ($_array as $key => $value) {
    $value = (is_array($value) || is_object($value)) ? std_class_object_to_array($value) : $value;
    $array[$key] = $value;
  }

  return $array;
}

就这样,对象数组就优雅地转成了普通的数组。动动脑子,代码量下来了,功能也优雅地就实现了。一举两得,何乐而不为呢?

(0)

相关推荐

  • php中将数组转成字符串并保存到数据库中的函数代码

    复制代码 代码如下: /** * 将字符串转换为数组 * * @param    string  $data   字符串 * @return   array   返回数组格式,如果,data为空,则返回空数组 */   function string2array($data) {       if($data == '') return array();       @eval("\$array = $data;");       return $array;   }    /** *

  • 解析PHP将对象转换成数组的方法(兼容多维数组类型)

    复制代码 代码如下: /**  * @author 我们  * @date 2013-6-21  * @todo 将对象转换成数组  * @param unknown_type $obj  * @return unknown  */ function object_to_array($obj){  $_arr = is_object($obj) ? get_object_vars($obj) :$obj;  foreach ($_arr as $key=>$val){   $val = (is_

  • PHP对象转换为数组函数(递归方法)

    返回的是一个层次比较分明的数组对象,希望对大家有所帮助,来源WEB开发笔记(www.chhua.com). 复制代码 代码如下: function object_to_array($obj) { $_arr = is_object($obj) ? get_object_vars($obj) : $obj; foreach ($_arr as $key => $val) { $val = (is_array($val) || is_object($val)) ? object_to_array($

  • PHP中将数组转成XML格式的实现代码

    下面是网上的 复制代码 代码如下: class ArrayToXML { /** * The main function for converting to an XML document. * Pass in a multi dimensional array and this recrusively loops through and builds up an XML document. * * @param array $data * @param string $rootNodeName

  • php二维数组转成字符串示例

    复制代码 代码如下: function arr2str ($arr){    foreach ($arr as $v)    {        $v = join(",",$v); //可以用implode将一维数组转换为用逗号连接的字符串        $temp[] = $v;    }    $t="";    foreach($temp as $v){        $t.="'".$v."'".",&quo

  • php实现数组纵向转横向并过滤重复值的方法分析

    本文实例讲述了php实现数组纵向转横向并过滤重复值的方法.分享给大家供大家参考,具体如下: 一.问题 有数组: array( 6=>array(5=>'黑xx', 42=>'XXL'), 7=>array(5=>'黑xx', 40=>'XL'), 8=>array(8=>'灰', 40=>'XL'), ); 要求转换成如下结果(数组纵向转横向并过滤重复值): array( 0=>array(5=>'黑xx', 8=>'灰'), 1=&

  • php实现将数组转换为XML的方法

    本文实例讲述了php实现将数组转换为XML的方法.分享给大家供大家参考.具体如下: 1. php代码如下: <?php class A2Xml { private $version = '1.0'; private $encoding = 'UTF-8'; private $root = 'root'; private $xml = null; function __construct() { $this->xml = new XmlWriter(); } function toXml($da

  • PHP实现数组递归转义的方法

    本文以实例形式讲述了PHP实现数组递归转义的方法,分享给大家供大家参考之用.具体方法如下: 主要功能代码如下: $arr = array('a"aa',array("c'd",array('e"f'))); function changes($arr){ foreach($arr as $k=>$v){ if (is_string($v)){ $arr[$k] = addslashes($v); }else if (is_array($v)) { //若为数组

  • php的数组与字符串的转换函数整理汇总

    1.将一个字符串转化为数组str_split()用于将一个字符串转化为数组语法: 复制代码 代码如下: str_split(string,length)<SPAN style="COLOR: #333333"><SPAN style="FONT-SIZE: 12px"><SPAN style="FONT-FAMILY: 宋体">//</SPAN></SPAN></SPAN>s

  • PHP 数组和字符串互相转换实现方法

    复制代码 代码如下: $array=explode(separator,$string); $string=implode(glue,$array); 使用和理解这两个函数的关键之处是分隔符(separator)和胶合符(glue)关系.当把一个数组转换成一个字符串时,将会设置胶合符--将被插入到生成字符串中的数组值之间的字符或代码. 相反,当把字符串转换成数组时,要指定分隔符,它用于标记什么应该变成独立数组元素.例如,以字符串开始: $s1='Mon-Tue-Wed-Thu-Fri'; $da

  • php简单对象与数组的转换函数代码(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; fo

  • PHP编码转换函数 自动转换字符集支持数组转换

    复制代码 代码如下: // 自动转换字符集 支持数组转换 function auto_charset($fContents, $from='gbk', $to='utf-8') { $from = strtoupper($from) == 'UTF8' ? 'utf-8' : $from; $to = strtoupper($to) == 'UTF8' ? 'utf-8' : $to; if (strtoupper($from) === strtoupper($to) || empty($fCo

随机推荐