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;
}
就这样,对象数组就优雅地转成了普通的数组。动动脑子,代码量下来了,功能也优雅地就实现了。一举两得,何乐而不为呢?
相关推荐
-
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编码转换函数 自动转换字符集支持数组转换
复制代码 代码如下: // 自动转换字符集 支持数组转换 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
-
php二维数组转成字符串示例
复制代码 代码如下: function arr2str ($arr){ foreach ($arr as $v) { $v = join(",",$v); //可以用implode将一维数组转换为用逗号连接的字符串 $temp[] = $v; } $t=""; foreach($temp as $v){ $t.="'".$v."'".",&quo
-
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实现数组纵向转横向并过滤重复值的方法分析
本文实例讲述了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简单对象与数组的转换函数代码(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对象转换为数组函数(递归方法)
返回的是一个层次比较分明的数组对象,希望对大家有所帮助,来源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实现数组递归转义的方法
本文以实例形式讲述了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实现将数组转换为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将对象转换成数组的方法(兼容多维数组类型)
复制代码 代码如下: /** * @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 数组和字符串互相转换实现方法
复制代码 代码如下: $array=explode(separator,$string); $string=implode(glue,$array); 使用和理解这两个函数的关键之处是分隔符(separator)和胶合符(glue)关系.当把一个数组转换成一个字符串时,将会设置胶合符--将被插入到生成字符串中的数组值之间的字符或代码. 相反,当把字符串转换成数组时,要指定分隔符,它用于标记什么应该变成独立数组元素.例如,以字符串开始: $s1='Mon-Tue-Wed-Thu-Fri'; $da
-
php中将数组转成字符串并保存到数据库中的函数代码
复制代码 代码如下: /** * 将字符串转换为数组 * * @param string $data 字符串 * @return array 返回数组格式,如果,data为空,则返回空数组 */ function string2array($data) { if($data == '') return array(); @eval("\$array = $data;"); return $array; } /** *
随机推荐
- 批处理命令教学之tree命令
- apache中使用.htaccess文件缓存图片的配置方法
- iOS tabview如何添加字母索引
- js直接编辑当前cookie的脚本
- PHP中round()函数对浮点数进行四舍五入的方法
- Bootstrap进度条与AJAX后端数据传递结合使用实例详解
- android计时器,时间计算器的实现方法
- MySQL预编译功能详解
- js实现仿百度风云榜可重复多次调用的TAB切换选项卡效果
- JS格式化数字金额用逗号隔开保留两位小数
- js实现点击文本框显示日期选择器特效代码分享
- 在Python中操作时间之tzset()方法的使用教程
- jquery对所有input type=text的控件赋值实现方法
- jQuery和CSS仿京东仿淘宝列表导航菜单
- js日期时间补零的小例子
- IE浏览器中图片onload事件无效的解决方法
- javascript 冒号 使用说明
- 巧妙的化解DDoS分布式拒绝服务攻击
- 传奇翎风4-8M2脚本大全之功能操作篇
- Android编程实现支持拖动改变位置的图片中叠加文字功能示例