PHP动态生成部门关联数组如何保持与原静态实现一致的键值对结构
问题原因
当前代码返回结构错误的核心原因是循环内赋值逻辑错误:每次向$dept_array追加独立的关联数组元素,最终生成索引数组嵌套关联数组的结构,不符合目标单层关联数组的要求。
修改后的代码
private function departmentArray($content=[]) { $depts = d::getAllMainDepartment(); $dept_array = []; foreach ($depts as $dept) { // 直接将部门ID作为结果数组的键名赋值 $dept_array[$dept->id] = $content; } return $dept_array; }
改动说明
原代码$dept_array[] = array($dept->id => $content);的逻辑是每次新增一个索引下标,对应的值是[部门ID => 内容]的关联数组。修改后直接把部门ID作为结果数组的一级键名赋值内容,最终返回的结构就和原有静态实现完全一致,JSON序列化后也会生成你需要的对象格式而非数组格式。
内容的提问来源于stack exchange,提问作者Franz Justin Buenaventura
相关产品推荐
相关产品推荐

