当第一个字母改变时,尝试在按字母顺序排序的列表中添加分隔符

时间:2013-07-29 11:49:36

标签: php html css

我按字母顺序排序了一个列表,并从数据库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>"; 
} 

提前致谢

4 个答案:

答案 0 :(得分:1)

试试这个:

$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
}  

答案 1 :(得分:1)

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

$firstLetter = 'A';
foreach( $result as $val ) { 
  $ch = substr( $val['name'],1,1);
  if( $ch != $firstLetter ) {
    echo "<hr>";
    $firstLetter = $ch;
  }
  echo $val['name']."<br>";
}

答案 2 :(得分:1)

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

答案 3 :(得分:0)

$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
}

这是你想要做的吗?