我希望样本输出如下所示。
1: 2次
2: 3次
3: 2次
4: 1发生
5: 1发生
7: 1发生
出现的次数基于表单格式中的用户输入。下面是我用来让用户输入数字的Html代码。
<!DOCTYPE html>
<html>
<style>
h1{
text-align:center;
}
form{
text-align:center;
margin:auto;
border-style: solid;
width:700px;
height:250px;
}
</style>
<body>
<form action="page2" method="get">
<h1>Algorithm Calculator</h1>
<label for="fname">Enter Number with Comma <br> eg:
1,2,3,4,4,5,5,7</label><br><br>
<input type="text" id="number" name="number"><br>
<br>
<input type="submit" value="Confirm">
</form>
</body>
</html>第二页代码
<?php
$number=$_GET['number'];
$result = array();
$result = explode(',',$number);
foreach ($result as $value){
echo "$value = ".array_count_values($result)
[$value]." occurrences <br>";
}
?>我只希望我的代码循环一次,但是如果用户输入相同的数字两次,它就会循环不止一次。下面是我的输出。
1=1次
2=1次
3=1次
4=2次
4=2次(我不希望这个循环两次)
发布于 2021-12-01 13:37:25
在进入循环之前,您将需要处理用户输入。
$result = explode(',',$number);
foreach (array_unique($result) as $value){
echo "$value = ".array_count_values($result)
[$value]." occurrences <br>";
}您将只保留数组中的唯一值,以便每个值只循环一次。
发布于 2021-12-01 13:46:06
array_count_values函数提供数组中的唯一元素作为键,还提供出现的次数作为数组中的值。因此,解决方案可以如下所述:
<?php
$number=$_GET['number'];
$result = array();
$result = explode(',',$number);
foreach (array_count_values($result) as $key => $value) {
echo "{$key} = {$value} occurrences <br />";
}
?>发布于 2021-12-01 13:52:35
循环遍历a array_count_values()的结果,这很简单。
$number='9,9,4,4,22,22,22';
$result = explode(',',$number);
print_r(array_count_values($result));
foreach(array_count_values($result) as $n=>$occ) {
echo "$n = $occ occurrences <br />" . PHP_EOL;
}结果
array_count_value()生成一个数组,其关键字是被计数的数字,值是这些数字的出现次数
Array
(
[9] => 2
[4] => 2
[22] => 3
)所以输出结果是
9 = 2 occurrences <br />
4 = 2 occurrences <br />
22 = 3 occurrences <br />https://stackoverflow.com/questions/70185163
复制相似问题