使用Letter Heading按字母顺序列出数组值

时间:2011-10-18 18:45:13

标签: php sorting alphabetical

我需要一些帮助来解决这个问题。我正在尝试创建一个按字母顺序输出数组中的值的函数,但在到达当前字母结尾后回显一个新的字母标题。例如:

A

亚马逊

巴哈马

百慕大

C

加拿大

柬埔寨

到目前为止我可以通过重复“$ result”中的代码来实现,但我知道这不是一个好习惯,所以我正在寻找包含变量而不是“a%”的东西,以及自动增量每次成功运行剧本后,该字母(在Z处停止)。

<?php
$username = "myusername";
$password = "mypsswrd";
$hostname = "localhost"; 


$dbhandle = mysql_connect($hostname, $username, $password)
or die("Unable to connect to MySQL");


$selected = mysql_select_db("mydb",$dbhandle)
or die("Could not select database");

$result = mysql_query("SELECT user, name FROM users WHERE name like 'a%' ORDER BY name");
echo "A<br />";
while ($row = mysql_fetch_array($result)) {
echo "<a href=\"/artists/artist.php?user=".$row{'user'}."\">".$row{'name'}."</a><br />";
}
echo "<br />";

1 个答案:

答案 0 :(得分:6)

$result = mysql_query("SELECT user, name FROM users ORDER BY name");
$last = '';

while ($row = mysql_fetch_array($result)) {
    $current = strtolower($row['name'][0]);
    if ($last != $current) {
        echo strtoupper($current) . "<br />";
        $last = $current;
    }
    echo "<a href=\"/artists/artist.php?user=".$row{'user'}."\">".$row{'name'}."</a><br />";
}