0


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

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

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

4

2 回答 2

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'];
}
?>

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

于 2013-05-14T13:07:20.033 回答
0

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

希望你明白我的意思。

祝你好运!

于 2013-05-14T12:58:58.587 回答