【问题标题】:PHP array sort / select option formPHP数组排序/选择选项形式
【发布时间】:2014-06-03 21:48:16
【问题描述】:

我有一个 PHP 表单。它是未排序的。我想对其进行排序。我该怎么办。这是我拥有的以下 PHP 代码。提前感谢您的帮助。

<select id="school_name" name="school_name">
    <option value="">Select School</option>
    <?php for($c=0; $c<sizeof($school_details); $c++){?>                                    
    <option value="<?php echo stripslashes($school_details[$c]["title"]); ?>" 
    <?php if($school_details[$c]["title"]==$appInfo["school_name"]){?> selected="selected" <?php } ?> ><?php echo stripslashes($school_details[$c]["title"]); ?>
    </option>                                 
    <?php } ?>
</select>

【问题讨论】:

  • 你想按什么标准排序?
  • 学校名称按照我在数据库中输入的顺序显示。现在想在用户选择学校名称时按字母顺序排列它们
  • 如何查询数据库?对于大多数数据库,使用一些查询参数(如 SQL 中的ORDER BY)更改结果集的顺序是微不足道的。

标签: php arrays sorting


【解决方案1】:

试试这样的:

$str = "<select id='school_name' name='school_name'>";
    $options = "";
    for($i = 0; $i<10;$i++)
    {
        $RandomNum = rand(0, 100);
        $options = "" . $options . ("<option value='$RandomNum'>&nbsp" . $RandomNum . "&nbsp </option>\n");
    }

    $optionsArray = explode("\n", $options);
    natsort($optionsArray);
    $sorted_option = implode("|",$optionsArray);

    $select = $str.$sorted_option."</select>";

    echo $select;

【讨论】:

    【解决方案2】:

    PHP 提供了多种排序方法:http://www.php.net/manual/en/array.sorting.php

    【讨论】:

    • 我花了一段时间,但我找到了查询,所以能够以 jsalonen 方式重新排序
    【解决方案3】:

    您可以实现用户定义的排序来实现此目的。假设您想按“标题”元素的值进行排序,您只需在开始选择标签之前添加它:

    <?php
    uasort($school_details,'cmp');
    function cmp($a,$b){
      if($a['title'] == $b['title']){return 0;}
      return ($a['title'] < $b['title']) ? -1 : 1; 
    }
    ?>
    

    【讨论】:

      猜你喜欢
      • 2022-01-13
      • 2016-08-15
      • 1970-01-01
      • 2013-08-30
      • 2023-03-15
      • 2012-01-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多