查询构造器结果--对象数组互转方法
一个小小的示例方法…
/**
* 数组转换对象
*
* @param $e 数组
* @return object|void
*/
public function arrayToObject($e)
{
if (gettype($e) != 'array') return;
foreach ($e as $k => $v) {
if (gettype($v) == 'array' || getType($v) == 'object')
$e[$k] = (object)$this->arrayToObject($v);
}
return (object)$e;
}
/**
* 对象转换数组
*
* @param $e StdClass对象实例
* @return array|void
*/
public function objectToArray($e)
{
$e = (array)$e;
foreach ($e as $k => $v) {
if (gettype($v) == 'resource') return;
if (gettype($v) == 'object' || gettype($v) == 'array')
$e[$k] = (array)$this->objectToArray($v);
}
return $e;
}
结果
数组转对象
对象转数组
PS
感谢关注「GitHub 热门」公众号,带你了解技术圈内热门新鲜事!
本作品采用《CC 协议》,转载必须注明作者和本文链接
本帖由 hustnzj
于 4年前 加精
运行后的结果嘞
@Summer 纳尼, 还要结果..好的
开始这方法有点BUG, BUG以修复......DB的童鞋请放心使用!
好用,不错~
->get()->toArray()
之后再用你的这个方法就完美了Laravel5.4及以后 不再支持在配置文件中定制 PDO 「fetch mode」 的功能。取而代之, PDO::FETCH_OBJ 一直可以使用。如果你仍然想要为你的应用程序自定义提取模式,你可以监听新的 Illuminate\Database\Events\StatementPrepared 事件(在app/Providers/EventServiceProvier 的boot方法中加入如下代码):
Event::listen(StatementPrepared::class, function ($event) {
$event->statement->setFetchMode(…);
});
请问跟这种方法对比,有什么优缺点吗