Php 如何从用户处获取输入并对该输入进行冒泡排序?

Php 如何从用户处获取输入并对该输入进行冒泡排序?,php,bubble-sort,Php,Bubble Sort,我是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-

我是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); 
?>


如果我存储了数组,我的代码工作得很好,我要做的是请求用户输入,而不是将其存储在代码中。有人能帮我解决如何询问用户需要多少元素然后输入这些元素的问题吗

如果要从命令行读取用户输入,则需要从STDIN(用户在CLI中运行脚本时的标准输入)读取。这可能与此问题重复:

但是,如果您希望显示网页并让用户从其浏览器将数据插入脚本,则需要创建一个表单,然后通过$\u POST访问表单信息。

尝试此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>

提交罚单
.隐藏{
显示:无;
}

这可能是一个“家庭作业”问题,但我要尝试一下

我会为用户提供一个。在页面文本中指出,每个值应以换行符分隔。然后,在$\u POST变量中,使用split('\r\n',$\u POST['myvar'])获取一个数组,其中每一行都是数组中的一个元素