• ベストアンサー

シャッフルしたデータを記録するには?

小テストのプログラムを作っています。 問題文と選択肢をシャッフルして表示させた後、答えのページでも出題のページと同じように表示させるにはどうしたらいいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

shuffleは本当にランダムの値をとっているわけではありません。 一定の乱数表を元にシードを使って初期化しています。 したがって問題ページでシードを作成して、答えのページにシード値を渡せば、 同じ配列であれば同じシャッフルの結果を得られます。 たとえば11~30までの数値のはいった配列$aと$bを用意し、 同じシード値で初期化したシャッフルを利用すると、同じ結果が確認できます。 <?PHP function make_seed() { list($usec, $sec) = explode(' ', microtime()); return (float) $sec + ((float) $usec * 100000); } $seed=make_seed(); $a=$b=range(11,30); srand($seed); shuffle($a); srand($seed); shuffle($b); print_r($a); print_r($b); ?>

参考URL:
http://www.php.net/manual/ja/function.srand.php

関連するQ&A