Laravel 8 中如何将数据库查询结果转换为指定格式的关联数组
Laravel Eloquent集合转自定义关联数组实现方案
你查询返回的$dosen是Laravel Eloquent集合实例,可通过遍历集合自定义组装成你需要的关联数组格式,操作步骤如下:
- 先预设好子数组的评分项顺序,保证每个子数组的下标对应含义一致
- 遍历集合取出对应字段作为关联数组的键,按预设顺序填充评分值,无值的位置填
null
实现代码示例
// 1. 预先定义子数组顺序对应的评分字段,顺序和你预期的子数组元素顺序完全匹配 $ratingItemFields = ['kriteria_1', 'kriteria_2', 'kriteria_3', 'kriteria_4', 'kriteria_5', 'kriteria_6']; $rating = []; // 2. 遍历查询得到的集合 foreach ($dosen as $criteriaItem) { // 自定义关联数组的键:示例是取关联的讲师名称作为键,如需用课程名替换成对应字段即可 $arrayKey = $criteriaItem->lecturer->name; $itemValues = []; // 3. 按预设顺序填充值 foreach ($ratingItemFields as $field) { $itemValues[] = $criteriaItem->$field ?? null; } $rating[$arrayKey] = $itemValues; }
特殊场景适配
如果你的关联数组键同时包含用户、课程两种类型,只需要在取$arrayKey的时候判断当前数据的类型,取对应字段作为键即可。
内容的提问来源于stack exchange,提问作者sul kifli
相关产品推荐
相关产品推荐

