求助:完善PHP代码以统计并输出数组中的重复姓名
找出重复姓名并输出的PHP实现
需求说明
输入为一个姓名列表:
- 第一个输入值是姓名的总数量
- 后续输入为具体姓名
需要输出列表中重复出现的姓名
输入示例:
5 John Mike Alisson John Mike
输出示例:
John Mike
现有代码补充与完整实现
你已经完成了姓名出现次数的统计逻辑,只需要新增遍历判断逻辑即可输出重复姓名。下面是修正并补充后的完整代码:
<?php $n = readline(); $names = []; // 初始化数组,避免未定义变量警告 for($i = 0; $i < $n ; $i++) { $name = readline(); $names[$name] = isset($names[$name]) ? $names[$name] + 1 : 1; } // 遍历统计结果,输出重复的姓名 foreach($names as $name => $count) { if($count > 1) { echo $name . PHP_EOL; } } ?>
代码说明
- 初始化数组:提前声明
$names数组,避免PHP抛出未定义变量的警告 - 统计次数:原循环逻辑通过关联数组的键存储姓名,值存储对应出现次数,每次读取姓名时更新计数
- 输出重复项:使用
foreach遍历统计数组,当姓名的出现次数$count大于1时,输出该姓名,PHP_EOL确保在不同操作系统下都能正确换行
内容的提问来源于stack exchange,提问作者ThCw
相关产品推荐
相关产品推荐

