按html表单输入顺序对foreach结果进行排序

Posted

技术标签:

【中文标题】按html表单输入顺序对foreach结果进行排序【英文标题】:Sort foreach results by html form input order 【发布时间】:2022-01-10 15:19:43 【问题描述】:

我有一个发布 <input> 字段内容的 html 表单。此字段接受一个或多个值。如果有多个值,则用户只需用空格分隔即可。

问题:如何按用户输入的确切顺序对结果进行排序?

例如

        <form>
           <input type="text" id="name" name="name">
           <button type="submit"></button>
        </form>

用户按此特定顺序输入以下内容:bravo alpha delta charlie

发布表单后,运行 php foreach 并将结果回显到页面。结果应按以下方式排序:

好极了 (布拉沃的结果) 阿尔法 (阿尔法的结果) 三角洲 (增量结果) 查理 (查理的结果)

我知道我可以使用几个 php sort();选项(例如按字母顺序),但我希望按用户输入的顺序准确排序。我怎样才能做到这一点?

谢谢

【问题讨论】:

【参考方案1】:

您可以使用 PHP 中的explode 函数,如下所示。 Explode 会将字符串分解为与用户输入的顺序相同的顺序,无需应用任何sort 函数,直到需要

<?php
// user input $_POST['specific_input_name']/$_GET['specific_input_name']
$str = "bravo alpha delta charlie";

// explode with spaces
$aStr = explode(" ",$str);

// loop individual item
foreach($aStr as $value) 
    echo $value."(results for $value)<br />";


// more detailed array structure
// print_r (explode(" ",$str));
?> 

【讨论】:

以上是关于按html表单输入顺序对foreach结果进行排序的主要内容,如果未能解决你的问题,请参考以下文章

哈希表 - 按输入方式排序

Python 如何对输出的词频结果按字母顺序排序(NLTK)

如何按特定顺序对 .then() 调用进行排序? [复制]

按添加的 WHERE 条件的顺序对 SQL 输出进行排序

使用mysql按两个字段对结果顺序进行排序

按字母顺序对查询结果进行排序,但在排序中排除“the”?