如何在PHP中使用For循环统计数组内各城市的出现次数?
实现城市调查数组的统计功能(For循环版本)
没问题,我来帮你完成这个需求——用for循环统计数组里各城市的出现次数,并且把结果展示在表格里。下面是完整的实现代码,我加了注释方便你理解:
<?php // 原始城市调查数组 $citySurvey = array("London", "Paris", "Rome", "Rome", "Paris", "Paris", "Paris", "London", "Rome", "Rome", "Paris", "London", "Paris", "London", "London", "London", "Paris", "London", "Paris", "Rome"); // 初始化一个空数组,用来存储每个城市的计数 $cityCounts = array(); // 第一个for循环:遍历原始数组,统计每个城市的出现次数 $totalCities = count($citySurvey); for ($i = 0; $i < $totalCities; $i++) { $currentCity = $citySurvey[$i]; // 如果当前城市已经在统计数组里,计数+1 if (isset($cityCounts[$currentCity])) { $cityCounts[$currentCity]++; } else { // 如果是第一次遇到这个城市,初始化计数为1 $cityCounts[$currentCity] = 1; } } // 输出标题和表格开头 print ("<h1>CITY SURVEY RESULTS</h1>"); print ("<table border = \"1\">"); print ("<tr><td>Cities</td><td>Counts</td></tr>"); // 第二个for循环:遍历统计数组,输出每个城市和对应的计数 // 先获取统计数组的键(也就是城市名称) $cityNames = array_keys($cityCounts); $totalUniqueCities = count($cityNames); for ($j = 0; $j < $totalUniqueCities; $j++) { $city = $cityNames[$j]; $count = $cityCounts[$city]; print ("<tr><td>$city</td><td>$count</td></tr>"); } // 关闭表格 print ("</table>"); ?>
代码说明:
- 首先用
count()获取原始数组的长度,通过for循环逐个访问数组元素。 - 用
$cityCounts数组存储统计结果:城市名称作为键,出现次数作为值。每次遍历到城市时,判断它是否已在统计数组中,存在就累加计数,不存在则初始化计数为1。 - 最后再用一个
for循环遍历统计好的数组,把每个城市和对应的计数输出到表格行里。
这样运行代码后,就能看到完整的城市调查统计表格啦!
内容的提问来源于stack exchange,提问作者Boram Lamppa
相关产品推荐
相关产品推荐

