ホームページ > バックエンド開発 > PHPチュートリアル > PHP の並べ替えに関する質問

PHP の並べ替えに関する質問

WBOY
リリース: 2016-06-23 14:17:42
オリジナル
946 人が閲覧しました

この投稿は、u010801782 によって 2013-07-30 23:32:15 に最終編集されました

<?phpfunction switchWeek($num){    switch ($num) {        case 1:            return '星期一';            break;        case 2:            return '星期二';            break;        case 3:            return '星期三';            break;        case 4:            return '星期四';            break;        case 5:            return '星期五';            break;        case 6:            return '星期六';            break;        case 7:            return '星期日';            break;         default:            return '';            break;    }}$con = mysql_connect("localhost","root","") or die('连接失败:'.mysql_error());mysql_select_db("testt");mysql_query('set names utf8');$sql = 'select * from news ';$result = mysql_query($sql);$array = array();while($row = mysql_fetch_array($result,MYSQL_ASSOC)){    $key = date('Y年m月d日',$row['sTime']).' '.switchWeek(date('N',$row['sTime']));    $array[$key][]=$row;}mysql_free_result($result);//var_dump($array);?><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>demo</title></head><body><table border='3' style="width: 500px; text-align:center;"><?php foreach ($array as $key => $value) {array_multisort($sTime, SORT_ASC, $value);?>    <tr><td colspan='5'><?=$key?></td></tr>    <?php        foreach ($value as $k => $v)        {         $sTime[$key]  = $v['sTime'];			?>       <tr>       <td><?=date('H:i',$v['sTime'])?></td>       <td><?=$v['title']?></td>       <td>	   <?php        if(time() > $v['sTime'] && time() < $v['eTime'] ){ echo '<span style="color: green;">开放中</span>'; }        if(time() < $v['sTime']){echo '<span style="color: #999;">暂未开放</span>';}        if(time() > $v['eTime']){echo '<span style="color:red ;">已过期</span>';}        ?>        </td>        </tr>        <?php 	}	?><?php }?><tr><td colspan='5'>已过期</td></tr></table></body></html>
ログイン後にコピー




最終的な効果は、図に示すように、フロントエンドに表示されると、行を並べ替えるにはどうすればよいですか。時間順に降順にして、期限切れの行を期限切れに移動しますか?


ディスカッション(解決策)への返信

最初に期限切れかどうかで並べ替え、次に時間で並べ替え、期限切れ、時間で並べ替えます

単に順番に並べると、期限切れのものは一番下にあり、期限切れでないものは時間の逆順に並べます

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

分類する必要がある場合は、期限切れでないリストを 1 回、2 回循環できます。位置に一度、期限切れのリストの位置に一度、直接コンテンツを出力するループ時に期限切れかどうかを判断するために使用されるフィールド

単に順番に並べると、期限切れのものは一番下、期限切れでないものは一番下になりますtop 時間の逆順に並べてあります

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

分類する必要がある場合は、2回ループし、期限切れになっていないリストの位置を1回ループします。期限切れのリスト位置に対して 1 回、出力コンテンツをループするときにフィールドが期限切れかどうかを直接判断します

出力をカテゴリにループする必要がある場合、これを実現するにはどうすればよいですか?例はありますか?

<table border='3' style="width: 500px; text-align:center;"><?php foreach ($array as $key => $value) {array_multisort($sTime, SORT_ASC, $value);?>    <tr><td colspan='5'><?=$key?></td></tr>    <?php        foreach ($value as $k => $v)        { 		if(time() <= $v['eTime']){			$sTime[$key]  = $v['sTime'];    			?>		   <tr>		   <td><?=date('H:i',$v['sTime'])?></td>		   <td><?=$v['title']?></td>		   <td>		   <?php			if(time() > $v['sTime'] && time() < $v['eTime'] ){ echo '<span style="color: green;">开放中</span>'; }			if(time() < $v['sTime']){echo '<span style="color: #999;">暂未开放</span>';}			?>			</td>			</tr>        <?php 		}    }    ?><?php }?><tr><td colspan='5'>已过期</td></tr><?php foreach ($array as $key => $value) {array_multisort($sTime, SORT_ASC, $value);?>    <tr><td colspan='5'><?=$key?></td></tr>    <?php        foreach ($value as $k => $v)        { 		if(time() > $v['eTime']){			$sTime[$key]  = $v['sTime'];    			?>		   <tr>		   <td><?=date('H:i',$v['sTime'])?></td>		   <td><?=$v['title']?></td>		   <td>				已过期			</td>			</tr>        <?php 		}    }    ?><?php }?></table>
ログイン後にコピー


2 つのループ。ループ中に期限切れかどうかを判断します。期限切れのものは下に表示され、その他は上に表示されます。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート