263 laravel中将查询的对象转换为多维数组的函数

本文介绍如何在 Laravel 中处理从数据库查询获取的对象,将其转换为Excel所需的多维数组格式,以适应表格需求。通过示例代码演示了对象遍历和转换的过程。

我们在laravel中通过数据库查询,有时获取的为对象.但是在进行使用excel类的时候,要求我们使用的多维数组.那么我们就不要进行转换了,如果使用toArray()无能将对象转换我们想要的类型,就需要手动转换.下面贴代码: 

        //函数处理,转换为表格需求的格式 
        $d =[];
        foreach ($data as $k=>$v) {
            $m = [];
            foreach ($v as $i=>$j) {
                $m[$i] = $j;
            }
            $d[$k] = $m;
        }

备注$data是数组查询出来的对象.

在前端开发中,将 JSON 对象转换为类数组对象通常涉及将对象的键值对映射到具有数字索引的结构,并添加 `length` 属性以模拟数组的行为。虽然 JSON 对象本身不是数组,但通过特定方式可以将其转换为类数组对象,从而满足某些库或 API 的输入需求。 一种常见的做法是使用 `Object.keys()` 配合 `reduce()` 方法遍历对象的键值对,并将其重新组织为类数组结构。例如: ```javascript const jsonObject = { a: 1, b: 2, c: 3 }; const arrayLike = Object.keys(jsonObject).reduce((acc, key, index) => { acc[index] = jsonObject[key]; acc.length = index + 1; return acc; }, {}); console.log(arrayLike); // { '0': 1, '1': 2, '2': 3, length: 3 } ``` 此外,也可以使用 `Object.entries()` 结合 `reduce()` 方法实现类似效果: ```javascript const jsonObject = { a: 1, b: 2, c: 3 }; const arrayLike = Object.entries(jsonObject).reduce((acc, [key, value], index) => { acc[index] = value; acc.length = index + 1; return acc; }, {}); console.log(arrayLike); // { '0': 1, '1': 2, '2': 3, length: 3 } ``` 在某些场景中,可能还需要使用 `$.parseJSON()` 方法将 JSON 字符串转换为 JavaScript 对象后再进行类数组结构的构建,这在使用 jQuery 处理服务器返回的 JSON 数据时较为常见[^1]。例如: ```javascript const jsonString = '{"a":1,"b":2,"c":3}'; const jsonObject = $.parseJSON(jsonString); const arrayLike = Object.keys(jsonObject).reduce((acc, key, index) => { acc[index] = jsonObject[key]; acc.length = index + 1; return acc; }, {}); console.log(arrayLike); // { '0': 1, '1': 2, '2': 3, length: 3 } ``` 需要注意的是,类数组对象不具备数组的原生方法(如 `map`、`filter` 等),因此在某些需要数组操作的场景中,可能需要先将其转换数组形式。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值