PHP数据库取数后:如何将数组转为指定键值对格式展示?
嘿,这个需求其实挺容易实现的,我分两种常用的后端编程语言给你拆解步骤~
假设你用的是PHP
首先先模拟下你从数据库拿到的原始数组(大概率是每条记录对应一个数组元素,包含id和对应的代码):
// 模拟从数据库获取的原始数据 $dbResult = [ ['id' => 5, 'code' => 'UL7'], ['id' => 5, 'code' => 'LL5'], ['id' => 6, 'code' => 'UR9'], ['id' => 6, 'code' => 'UL7'], ];
要转换成你要的格式,只需要两步:
- 第一步:把相同
id对应的code合并到一起 - 第二步:遍历合并后的数组,拼接成「id => 代码列表」的格式
具体代码实现:
// 第一步:按id分组聚合code $groupedData = []; foreach ($dbResult as $item) { $id = $item['id']; // 如果这个id还没在分组数组里,先初始化一个空数组 if (!isset($groupedData[$id])) { $groupedData[$id] = []; } // 把当前code加到对应id的数组里 $groupedData[$id][] = $item['code']; } // 第二步:输出目标格式 foreach ($groupedData as $id => $codes) { // 把code数组转成逗号分隔的字符串 $codeStr = implode(',', $codes); // 拼接成你要的格式并输出 echo "「{$id} => {$codeStr}」\n"; }
运行这段代码后,输出就是:
「5 => UL7,LL5」 「6 => UR9,UL7」
如果是Python的情况
同样先模拟原始数据:
# 模拟从数据库获取的原始列表 db_result = [ {'id': 5, 'code': 'UL7'}, {'id': 5, 'code': 'LL5'}, {'id': 6, 'code': 'UR9'}, {'id': 6, 'code': 'UL7'}, ]
实现代码逻辑类似:
# 第一步:按id分组聚合code grouped_data = {} for item in db_result: item_id = item['id'] if item_id not in grouped_data: grouped_data[item_id] = [] grouped_data[item_id].append(item['code']) # 第二步:输出目标格式 for item_id, codes in grouped_data.items(): code_str = ','.join(codes) print(f"「{item_id} => {code_str}」")
运行后同样会得到你想要的输出~
小提示
如果你的原始数组结构和我模拟的不一样(比如已经是按id分组好的?),只需要调整下聚合的逻辑就行。核心思路就是先按key(这里是id)把对应的值聚合到一起,再把聚合后的数组转成逗号分隔的字符串,最后拼接成你要的格式。
内容的提问来源于stack exchange,提问作者Nikita Agrawal
相关产品推荐
相关产品推荐

