前回セッションを配列化することをこのサイトで質問したのですが、
同じ内容、重複を削除をしたくまた質問させていただきました。
session_start(); $name = filter_input(INPUT_POST,'username'); $title = filter_input(INPUT_POST,'title'); $email = filter_input(INPUT_POST,'email'); if(!isset($_SESSION["data"])){ $_SESSION["data"]=[]; } if(!is_null($name)){ $_SESSION["data"][]=["name"=>$name,"title"=>$title,"email"=>$email]; } /*セッションにデータがあれば、 if(isset($_SESSION["data"])){ $s_array = $_SESSION["data"]; /* セッションを変数に保存して*/ $nocks = array_unique($s_array); /*重複を削除*/ $orign = array_values($nocks); /*飛び飛びを消す*/ } ?> [ <a href="<?php echo $_SERVER["SCRIPT_NAME"];?>">リロード</a> | <a href="<?php echo $_SERVER["SCRIPT_NAME"];?>?del=all">全削除</a> ] <hr> <form action="<?php echo $_SERVER["SCRIPT_NAME"];?>" method="post"> 名前:<input type="text" name="username"><br> タイトル:<input type="text" name="title"><br> メールアドレス:<input type="text" name="email"><br> <input type="submit" name="exe" value="送信じゃい!"> </form> <table border> <tbody> <?php foreach($orign as $key=>$row){ echo '<tr>'; echo '<td>'.htmlspecialchars($row["name"]).'</td>'; echo '<td>'.htmlspecialchars($row["title"]).'</td>'; echo '<td>'.htmlspecialchars($row["email"]).'</td>'; echo '</tr>'; } ?> </tr> </tbody> </table> <hr>
array_unique や
array_valuesを使用しますと未定義になってしまいました。
最初はこの関数に生のsession["data"]を入れていたのですが、それでもエラーになってしまいます。
何卒よろしくお願いいたします。