这是我的代码:
<div class="widgeter-content no-padding">
<ul id="contacts">
<?PHP
while ($r = MysqL_fetch_array($q)){
$currentletter = substr($name,0,1);
if ($currentletter != $lastletter){
?>
<!-- start li data group for specific alphabetic letter -->
<li data-group="<?=$currentletter;?>">
<a class="title"><?=strtoupper($currentletter);?></a>
<?
}
?>
<ul>
<li>
<a href="#">
<span><?=$name;?></span>
</a>
</li>
</ul>
<?
if ($currentletter != $lastletter){
?>
</li>
<!-- end data group (not currently working, ends on first result) -->
<?
}
$lastletter = $currentletter;
}
?>
</ul>
</div>
我正在尝试做的是:
A:
Alfred
Annie
B:
Bob
Billy
如您所见,数据包装在li数据组中.
代码的第一部分工作正常,但最后一部分(我试图将结束标记li放在结束注释之前,在每个循环的第一个结果之后显示,需要在每个字母的末尾显示)结果).
最好的方法是什么?我确定我要实现的目标非常明显,但是我无法想到一种逻辑方法来获取构造我想要的代码.
谢谢
解决方法:
$res = array();
while ($r = MysqL_fetch_array($q)){
$currentletter = substr($name,0,1);
$res[$currentletter][] = $name;
}
foreach($res as $key=>$val){
/// here you add your li
/// here $key will give you letter and $val will give you name
echo $key;
foreach($val as $reqvals){
echo $reqvals;
echo "<br>";
}
}