PHP统计数组重复药品时仅能获取计数无法获取药名问题求解
问题原因
- 你遍历
$cnt关联数组时只获取了值(重复次数),没有获取数组的键(对应药品名称) - 原有判断条件存在语法错误,你误将整个统计数组
$cnt作为判断对象,实际应该判断单次遍历拿到的重复次数是否大于1
解决代码
将原有遍历$cnt的代码替换为以下内容即可直接获取到药品名:
foreach ($cnt as $medName => $repeatCount) { // 仅处理重复次数大于1的药品 if ($repeatCount > 1) { echo '<h2 style="color: gray;">'; echo "药品名:{$medName},重复次数:{$repeatCount}"; echo '</h2>'; // 此处直接使用 $medName 调用对应API即可 } }
可选优化
你原有统计重复的两层循环可以简化,不需要嵌套遍历,直接使用array_column提取药品名后统计即可,性能更好:
// 直接提取$mednames中的所有med_name字段为一维数组 $allMedNames = array_column($mednames, 'med_name'); // 统计每个药品出现的次数,替代你原有的两层循环逻辑 $cnt = array_count_values($allMedNames);
内容的提问来源于stack exchange,提问作者leo
相关产品推荐
相关产品推荐

