0

我按字母顺序对列表和数据库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

4 回答 4

1

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

$firstLetter = 'A';
foreach( $result as $val ) { 
  $ch = substr( $val['name'],1,1);
  if( $ch != $firstLetter ) {
    echo "<hr>";
    $firstLetter = $ch;
  }
  echo $val['name']."<br>";
}
于 2013-07-29T11:54:48.040 回答
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
}  
于 2013-07-29T11:54:31.963 回答
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;
} 
于 2013-07-29T11:57:25.907 回答
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
}

这是你想做的吗?

于 2013-07-29T11:54:32.690 回答