PHP使用array_count_values统计数字出现次数避免foreach重复输出
问题原因
原有代码直接遍历按逗号分割后的原始数组,数组内有多少个元素就执行多少次输出逻辑,重复数字自然会对应重复的输出结果。array_count_values()返回的统计结果本身已经是去重的关联数组,直接遍历该结果即可解决重复输出问题。
修改后的PHP代码
<?php $number = $_GET['number']; $numArray = explode(',', $number); // 直接获取去重的数字统计结果 $countResult = array_count_values($numArray); foreach ($countResult as $num => $occurrences) { // 适配单复数,匹配示例输出效果,不需要可直接删除该逻辑用固定文本 $unit = $occurrences === 1 ? 'occurrence' : 'occurrences'; echo "<p>{$num}: {$occurrences} {$unit}</p>"; } ?>
效果说明
修改后的代码直接遍历统计结果,每个数字只会输出一次统计值,同时支持单复数自动适配,和你给出的期望输出效果完全一致,不需要额外的数组去重操作,执行效率更高。
内容的提问来源于stack exchange,提问作者Andy
相关产品推荐
相关产品推荐

