php - 根据名字的第一个字母对 PHP 结果进行分组

标签 php mysql

我有一个查询,它获取按姓氏排序的所有记录。现在我想创建一个循环,将这些结果按姓氏的第一个字母分组,并在组上方显示字母,即

A
-----------
Albert
Alfred

C
-----------
Charles

D
-----------
Delta etc...

谢谢!

最佳答案

MySQL端按lastname排序结果,在PHP端跟踪首字母的变化:

<?php

$rs = mysql_query("SELECT * FROM mytable ORDER BY lastname");

while ($rec = mysql_fetch_assoc($rs)) {
    if ($initial !== strtoupper(substr($rec['lastname'], 0, 1)) {
        $initial = strtoupper(substr($rec['lastname'], 0, 1));
        print "$initial\n";
    }
    print $rec['lastname'] . "\n";
}

?>

关于php - 根据名字的第一个字母对 PHP 结果进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6760222/

相关文章:

php - 来自 PHP 的 MySQL 查询返回不正确的结果

php - 尝试将 MYSQL 查询分成两部分

php - 如何在插入记录后立即查询主键?

php - 使用从 MySQL TIME 字段检索的值计算时间差

mysql - 在 MySQL 中保持 show_compatibility_56 始终打开

php - 如何在我的查询中使用日期格式?

mysql - SQL - 用户定义的变量和客户端 session 混淆?

php - 在 Laravel Eloquent 中,limit 与 take 之间有什么区别?

php - 如何按照给定格式格式化多维数组

php - 使用 PHP 从外部 URL 获取 Json 对象