繁体   English   中英

无需查找数组即可查找最大和第二大数字的php代码

[英]php code for find largest and second largest number without using array

<form id="form1" name="form1" method="post" action="">
   <input name="txt1" type="text" /><br />
   <input name="txt2" type="text" /><br />
   <input name="txt3" type="text" /><br />
   <input name="s" type="submit" value="Find No"/>
   </form> 

这是我的html代码。

    <?php

    $a = 10;
    $b = 25;
    $c = 20;

    if($a > $b)
    {
  if($a > $c)
 {
 echo "a is biggest number";
 }
else
 {
 echo "c is biggest number";
 }
}
if($b > $c)
{
echo "b is biggest number";
}

?>

`这是查找代码

在三个数字中最大。 我希望得到最大和第二大的否

给定一个从输入字段获得的数字字符串数组,例如,一个镜像原始值的字符串:

$a = array('1', '5', '19', '200', '999');

您可以使用以下方法将其转换为真实的数值数组:

$a = array_map('intval', $a);

然后完全按照之前的步骤进行操作:

$last = max($a);
$second = max(array_diff($a,[$last]));

在这里摆弄。

您必须使用输入框和一个提交按钮来实现非常简单的基本工作模型。

HTML:

<form action="/path to your php file or leave blank if both html and php are in same file">
<input type="text" name="arr" value=''>
<input type="submit" name="submit" value="submit">
</form>

//现在,用户可以在输入框中提供带有空格的输入,例如9 11 13 15 16 29等。

的PHP

<?php
    if(isset($_REQUEST['arr']) && !empty($_REQUEST['arr'])){
        $a = explode(' ', $_REQUEST['arr']);
        $last = max($a);
        $second = max(array_diff($a,[$last]));
        echo $second;
        echo $last;
?>

我认为这可以解决您的查询。

在这里,我们使用具有最大和第二大数字的反向数组排序

$result = array(1,5,19,200,999);
$count = count($result);
for($i=0;$i<$count;$i++){   
   for($j=$i+1;$j<$count;$j++){   
      if($result[$i]<$result[$j]){
        $m = $result[$i];
        $result[$i] = $result[$j];
        $result[$j] = $m;
      }
   }
 }
echo "Largest Number : ".(!empty($result[0])?$result[0]:FALSE)." Largest Second Number : ".(!empty($result[1])?$result[1]:FALSE);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM