2014-04-24 2 views
0

저는 PHP에 익숙하지 않습니다. 사용자에게 요소 수를 묻는 프로그램을 만들려고합니다. 그리고 나서 이러한 요소를 입력 한 다음 거품을 정렬합니다. 내가 배열을 저장하는 경우사용자로부터 입력을 받고 그 입력을 버블 정렬하는 방법은 무엇입니까?

<?php 
    function bubbleSort(array $arr) 
{ 
    $n = sizeof($arr); 
    for ($i = 1; $i < $n; $i++) { 
     $flag = false; 
     for ($j = $n - 1; $j >= $i; $j--) { 
      if($arr[$j-1] > $arr[$j]) { 
       $tmp = $arr[$j - 1]; 
       $arr[$j - 1] = $arr[$j]; 
       $arr[$j] = $tmp; 
       $flag = true; 
      } 
     } 
     if (!$flag) { 
      break; 
     } 
    } 

    return $arr; 
} 

// Example: 
$arr = array(255,1,'a',3,45,5); 
$result = bubbleSort($arr); 
print_r($result); 
?> 

내 코드가 잘 작동, 난 할 노력하고있어 코드에 저장하는 대신 사용자에게 입력 요청하는 것입니다. 누구든지 얼마나 많은 요소가 필요한지 사용자에게 묻고 이러한 요소를 입력하는 방법을 도와 줄 수 있습니까?

답변

0

이 html 코드를 사용하십시오.

<!doctype html> 
<html> 
    <head> 
     <meta charset="utf-8"> 
     <title>Submit a Ticket</title> 
     <style type="text/css" media="screen"> 
      .hidden { 
       display: none; 
      } 
     </style> 
    </head> 

    <body> 
     <form name="form1" id="form1" method="post" action="<?php $_SERVER['PHP_SELF']?>"> 
      <h5>Bubble Sort</h5> 
      <h6>Fill the values</h6> 
      <label>Value 1<input type="text" name="bubble_values[]" id="bubble_values1" size="10" maxlength="10"></label><br> 
      <label>Value 2<input type="text" name="bubble_values[]" id="bubble_values2" size="10" maxlength="10"></label><br> 
      <label>Value 3<input type="text" name="bubble_values[]" id="bubble_values3" size="10" maxlength="10"></label><br> 
      <label>Value 4<input type="text" name="bubble_values[]" id="bubble_values4" size="10" maxlength="10"></label><br> 
      <label>Value 5<input type="text" name="bubble_values[]" id="bubble_values5" size="10" maxlength="10"></label><br> 
      <input type="submit" value="Sort it!" id="bt-submit"> 
     </form> 

     <h3>Result</h3> 
     <?php 
     function bubbleSort(array $arr) 
     { 
      $n = sizeof($arr); 
      for ($i = 1; $i < $n; $i++) { 
       $flag = false; 
       for ($j = $n - 1; $j >= $i; $j--) { 
        if($arr[$j-1] > $arr[$j]) { 
         $tmp = $arr[$j - 1]; 
         $arr[$j - 1] = $arr[$j]; 
         $arr[$j] = $tmp; 
         $flag = true; 
        } 
       } 
       if (!$flag) { 
        break; 
       } 
      } 

      return $arr; 
     } 

     // Example: 
     if (isset($_POST['bubble_values']) && !empty($_POST['bubble_values'])) { 
      echo '<pre>'; 
      echo 'Before sort: '; 
      print_r($_POST['bubble_values']); 
      echo '<br>--------------------<br>'; 
      echo 'After sort:' ; 
      print_r(bubbleSort($_POST['bubble_values'])); 
      echo '</pre>'; 
     } 
     ?> 
    </body> 
</html> 
0

명령 줄에서 사용자 입력을 읽으려면 사용자가 CLI에서 스크립트를 실행할 때 STDIN (표준 입력)을 읽어야합니다. 이 질문의 중복 수 있습니다 : PHP standard input?

그러나 웹 페이지를 표시하고 사용자가 브라우저에서 스크립트에 데이터를 삽입하도록하려면 양식을 만든 다음 양식 정보에 액세스해야합니다. $ _POST.

0

이것은 '숙제'문제 일 수 있지만 찌를 것입니다.

나는 사용자 a를 제공 할 것입니다. 페이지 텍스트에 각 값을 줄 바꿈으로 구분해야 함을 나타냅니다. 그런 다음 $ _POST 변수에서 split ('\ r \ n', $ _POST [ 'myvar'])을 사용하여 각 행이 배열의 요소 인 배열을 가져옵니다.

관련 문제