0

いくつかの回答を見てきましたが、特定の問題に関連するものはありません。ユーザー入力を受け取り、配列を昇順で並べ替える配列があります。これで問題ありません。配列のインデックスを特定できる数値をユーザーに入力してもらいます。数値が見つからない場合、関数は -1 を返します。エラーに指を置くことはできません。常に-1になっています。

どんな助けでも本当に感謝しています

これが情報を拾う私のフォームです。

<form action="welcome.php" method="POST" value="">
Name: <input type="text" name="fname" value="">
Age: <input type="text" name="age" value="">
Integer :<input type="number" name="integer" value="">

<div class="container">

<p> Please choose numbers: </p>



  <label>First:</label> 
  <input type="number" name="name[]" ><br />
  <label>2nd</label> 
  <input type="number" name="name[]"><br />
  <label>3rd</label> 
  <input type="number" name="name[]" ><br />
  <label>4th</label> 
  <input type="number" name="name[]"><br />
  <label>5th</label> 
  <input type="number" name="name[]"><br />
  <label>6th</label>
  <input type="number" name="name[]"><br />
  <label>7th</label>
  <input type="number" name="name[]"><br />
  <label>8th</label> 
  <input type="number" name="name[]"><br />
  <label>9th</label> 
  <input type="number" name="name[]"><br />
  <label>10th</label> 
  <input type="number" name="name[]"><br />
  <label>Pos Number</label>
  <input type="number" name="pos"><br />


   <input type="submit">


And the index locator:

   Welcome <?php echo $_POST["fname"]; ?>!<br>
   You are <?php echo $_POST["age"]; ?> years old.

    <?php 

   $tmp = trim($_POST['integer']);
   if (!ctype_digit($tmp)) {echo "Input requires an inetger  "  ;}
   else{
   echo "The integer is   ".$_POST["integer"]."<br>";
   }

   echo"You have entered the numbers below <br>";
   $name=$_POST['name'];

   sort($name);

   foreach( $name as $v) {
   print $v."<br>";

   }

   echo "You wish to find the position of ".$_POST['pos']."<br />";




   function search($name,$K){
   $l=0;
   $size=sizeof($name);
   $u=$size-1;
   $m=0;

   while ($l<=$u){
   $m = ($l+$u)/2;
   round($m);
   echo "this is m ".$m;
   if ($name[$m]<$K) {
   $l=$m+1;
   }
   else if ($name[$m]==$K) {
   return $m;

       return $m;
   } else {
   $u=$m-1;
}
   }

   return -1;

}


   $po=$_POST['pos'];

   $b=search($name,$po);

   echo "The position of the entered number is".$b;


   ?>
4

0 に答える 0