尝试在按字母顺序排序的列表中添加分隔符,第一个字母将会更改


trying to add seperator in alphabetically sorted list wen first letter will change

我按字母顺序对列表和数据库mysql中的数据进行了排序。为了读取数据,我使用foreach循环。现在,我想当第一个字母(a->b->c)将更改时,分隔符将添加到"a"字符列表后,依此类推

代码:

$result = mysqli_query($con,"SELECT * FROM pages order by name ASC"); 
foreach($result as $val){ 
   echo $val['name']."<br>"; echo "<hr></hr>"; 
} 

提前感谢

<?php
$first = '';
$result = mysqli_query($con,"SELECT * FROM pages order by name ASC"); 
foreach($result as $val){
    $first = substr($val['name'], 0, 1);
    if ($first != $prev){
        echo '<h1>'.$first.'</h1>';
    }
    echo $val['name']."<br>";
    $prev = $first;
} 

试试这个:

$result = mysqli_query($con,"SELECT * FROM pages order by name ASC"); 
$lastChar = "?"; //initialization
foreach($result as $val){ 
   if($lastChar != $val['name'][0]){    
     echo $val['name'][0].'<BR>';       //separator
   }
   echo $val['name']."<br>"; echo "<hr></hr>";
   $lastChar = $val['name'][0];         //update
}  

试试这个(未测试的代码):

$firstLetter = 'A';
foreach( $result as $val ) { 
  $ch = substr( $val['name'],1,1);
  if( $ch != $firstLetter ) {
    echo "<hr>";
    $firstLetter = $ch;
  }
  echo $val['name']."<br>";
}
$char = 'a';
foreach($result as $val) {
  $newChar = substr($val['name'],0,1);
  if ($newChar != $char) {
    $char = $newChar;
    echo "seperator for new character";
  }
  //do your other stuff
}

这就是你想要做的吗?