mysql排序数据结果A-Z并用线分割每个部分

时间:2013-05-14 12:50:52

标签: php mysql

我在mysql表中有几千行 在按升序选择记录后,我想以这种格式按字母顺序格式化结果的每个部分

a
ab
abc
abcd
abcde
abcdef
-------------------------------------
b
bab
babc
babcd
babcdef
-------------------------------------
c
ca
cab
cabc
cabcd
cabcde
cabcdef
-------------------------------------

我需要做的是用线条去除字母表中的每个部分。

2 个答案:

答案 0 :(得分:2)

在php(和大多数其他语言)中,所有字符串都是字符数组。所以$ string [0]将保存字符串的第一个字符。

<?php
$rows = get_rows_from_mysql();

$section = false;

foreach ($rows as $row) {

  if ($section != strtolower($row['name'][0])) {
    if ($section != false) echo "------------------------";
    $section = strtolower($row['name'][0]);
  }

  echo $section['name'];
}
?>

以上代码不会处理数字或特殊字符的分组,例如!“#,但你应该明白这一点。

答案 1 :(得分:0)

我会创建一个初始值为 a 的变量。一旦它第一次用第一个字母 a 命中记录 - 将变量设置为 b 并打印一行。第一个字母是 b 后 - 将变量设置为 c 并打印一行。

希望你理解我的意思。

祝你好运!