如何在循环变量时按字母顺序对 php 进行排序


How to alphabetical sort php while loop variable?

我从表中选择一个id,然后通过id获取所有成员的ID的名称。现在的问题是,如何按字母顺序对名称($uname)进行排序? 这可能很简单,但我被困住了..感谢您的帮助!!下面的代码 -

$sql= mysql_query("Select DISTINCT(`Supervisor ID`) from `list`  ");
while($row = mysql_fetch_array($sql))
{   
     $id = $row['Supervisor ID'];
     $query = "SELECT `Name` from `list` WHERE `ID` = '$id'  ";
     $name = mysql_query($query);
     $username = mysql_fetch_array($name);
     $uname = $username['0'];

     $Supervisor .="<OPTION VALUE='"$uname'">".$uname.'</option>';
}

ORDER BY子句用于任何类型的数据库排序。因此,在循环中更改查询,如下所示:

$query = "SELECT `Name` from `list` WHERE `ID` = '$id' ORDER BY Name ASC  ";

获取更多信息: 按 cluase 订购

让我知道以获得进一步的帮助。

你可以在单个查询中做到这一点,试试这个。

$sql= mysql_query("Select DISTINCT Supervisor ID, Name from list ORDER BY Name ASC");
while($row = mysql_fetch_array($sql))
{   
     $uname = $row['1'];
     $Supervisor .="<OPTION VALUE='"$uname'">".$uname.'</option>';
}

使用这个:-

 $sql= mysql_query("Select DISTINCT(`Supervisor ID`) from `list`  ");
while($row = mysql_fetch_array($sql))
{   
     $id = $row['Supervisor ID'];
     $query = "SELECT `Name` from `list` WHERE `ID` = '$id'  ";
     $name = mysql_query($query);
     $username = mysql_fetch_array($name);
/* Sore name in to an new array */
     $uname[] = $username['0'];

}

排序你的名字 数组在这里使用

sort()

单击此处查看排序功能的演示

 $user_names = sort($uname);

像这样创建期权价值

foreach($uname as $name) {
$Supervisor .="<OPTION VALUE='"$name'">".$name.'</option>';
}
SELECT `Name` from `list` WHERE `ID` = '$id' order by `Name` ASC
使用

order by 子句表示升序,使用 DESC 表示降序