PHP Loop Detect First Instance of each Letter of MySQL 结果

标签 php mysql

如果我使用 MySQLi 使用 PHP 查询数据库, 如何检测字母表中每个字母的第一个实例?

如果我有一张像这样的 table -

ID | name
1    Allen
2    John
3    Sally
4    William

我查询

SELECT * FROM table ORDER BY name ASC

我可以在我的循环中添加一些内容吗?“如果这是你第一次看到 name 中以字母 A 开头的字符串”,echo <a id="a"></a>创建 anchor 标记?然后它将继续对 B、C、D、E、F、G 等执行相同的操作。然后我可以创建一个按字母顺序排列的图例。

这是我的查询和循环:

$query = "SELECT * FROM table ORDER BY name ASC";
$result = $db->query($query);
$num = $result->num_rows;
for($i=0; $i < $num; $i++){
    $row = $result->fetch_object();
      //IF THIS IS THE FIRST TIME SEEING $row->name START 
      //WITH A DIFFERENT LETTER OF THE ALPHABET ECHO SOMETHING...
    echo $row->name;
 }

最佳答案

创建一个关联数组来记录您看到的字母。

$letters_seen = array();

while ($row = $result->fetch_object()) {
    $letter = substr($row->name, 0, 1);
    if (!isset($letters_seen[$letter])) {
        // This is the first time seeing this initial letter
        $letters_seen[$letter] = true;
        echo "<a id='$letter'>$letter</a>";
    }
    echo $row->name;
}

关于PHP Loop Detect First Instance of each Letter of MySQL 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25656061/

相关文章:

php - 在 mysql 列中添加数字

php - 显示用户名可用,即使已经存在

php - 页面系统,其中类别 = 1

MySQL 列上的触发器

php - 使用 mysql rand() 在 ajax 调用上显示唯一图像

PHP:从 Python 字典中获取字符串,例如 String

php - 我怎样才能像 WooCommerce 后端一样获得每个类别的产品数量?

php - 通知 : array to string conversion in php

php - 如何将数组值推送到 json 字符串中

javascript - 如何在ajax成功函数中仅访问由json发送的一个对象而不是整个数组?