当前位置:Gxlcms > PHP教程 > PHP排序疑问

PHP排序疑问

时间:2021-07-01 10:21:17 帮助过:17人阅读

本帖最后由 u010801782 于 2013-07-30 23:32:15 编辑

demo $value) {array_multisort($sTime, SORT_ASC, $value);?>     $v)        {         $sTime[$key]  = $v['sTime'];			?>       
$v['sTime'] && time() < $v['eTime'] ){ echo '开放中'; } if(time() < $v['sTime']){echo '暂未开放';} if(time() > $v['eTime']){echo '已过期';} ?>
已过期




最终效果如图,请问前端显示的时候如何按时间大小降序并且已经过期的行移动到已过期下面去。


回复讨论(解决方案)

先按是否过期进行排序,再按时间进行排序,order by 过期,time

如果仅仅是顺序排列,已过期的在下边未过期的在上边 各自按时间倒序排列

$sql = 'select * from news order by guoqi desc,time desc

如果需要将之分门别类 可以进行两次循环,未过期的列表位置循环一次,已过期的列表位置循环一次,直接在循环输出内容时判断过期与否的字段

如果仅仅是顺序排列,已过期的在下边未过期的在上边 各自按时间倒序排列

$sql = 'select * from news order by guoqi desc,time desc

如果需要将之分门别类 可以进行两次循环,未过期的列表位置循环一次,已过期的列表位置循环一次,直接在循环输出内容时判断过期与否的字段

需要分门别类的循环输出,请问如何实现?有实例吗?

 $value) {array_multisort($sTime, SORT_ASC, $value);?>     $v)        { 		if(time() <= $v['eTime']){			$sTime[$key]  = $v['sTime'];    			?>		    $value) {array_multisort($sTime, SORT_ASC, $value);?>     $v)        { 		if(time() > $v['eTime']){			$sTime[$key]  = $v['sTime'];    			?>		   
$v['sTime'] && time() < $v['eTime'] ){ echo '开放中'; } if(time() < $v['sTime']){echo '暂未开放';} ?>
已过期
已过期


两次循环 循环中判断是否过期 已过期的下边显示 其他的上边显示

人气教程排行