dポイントプレゼントキャンペーン実施中!

皆様お世話になります。PHPで簡単な掲示板を作成していまして
表示部分で日付の新しい投稿を上位表示したいと考えています。
下記をどのように記載すればよろしいでしょうか?ご教示いただければ幸いです。

<?php
//var_dump($_POST);
$err_msg1 = "";
$err_msg2 = "";
$message ="";
$time = date("Y/n/j G:i");
$name = ( isset( $_POST["name"] ) === true ) ?$_POST["name"]: "";
$comment = ( isset( $_POST["comment"] ) === true ) ? trim($_POST["comment"]) : "";


//投稿がある場合のみ処理を行う
if ( isset($_POST["send"] ) === true ) {
if ( $name === "" ) $err_msg1 = "名前を入力してください";

if ( $comment === "" ) $err_msg2 = "コメントを入力してください";

if( $err_msg1 === "" && $err_msg2 ==="" ){
$fp = fopen( "data/data.txt" ,"a" );
fwrite( $fp , $time."\t".$name."\t".$comment."\n");
$message ="書き込みに成功しました。";
}

}

$fp = fopen("data/data.txt","r");

$dataArr= array();
while( $res = fgets( $fp)){
$tmp = explode("\t",$res);
$arr = array(
"time"=>$tmp[0],
"name"=>$tmp[1],
"comment"=>$tmp[2]
);
$dataArr[]= $arr;
}


?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>掲示板</title>
</head>
<body>
<?php echo $message; ?>
<form method="post" action="">
名前:<input type="text" name="name" value="<?php echo $name; ?>" >
<?php echo $err_msg1; ?><br>
コメント:<textarea name="comment" rows="4" cols="40"><?php echo $comment; ?></textarea>
<?php echo $err_msg2; ?><br>
<br>
<input type="submit" name="send" value="送信" >
</form>
<dl>
  <?php foreach( $dataArr as $data ): ?>
    <div><?php echo $data["time"]; ?><br>
<span><?php echo $data["name"]; ?></span> :<br> <?php echo $data["comment"]; ?></div>
   <?php endforeach;?>
     </dl>
</body>
</html>

A 回答 (1件)

$dataArr には書き込んだ順に格納されているから、それを逆順にするだけです。



array_reverse - 要素を逆順にした配列を返す
http://jp2.php.net/manual/ja/function.array-reve …
    • good
    • 0
この回答へのお礼

ご教示ありがとうございました。
このようにしたらうまくいきました!!

<?php foreach( $dataArr=array_reverse($dataArr) as $data ): ?>

お礼日時:2018/04/09 17:27

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!