PHPでランダムで重複しない値を、ループの中で出力したいと考えております。
お詳しい方がいらっしゃいましたら、ご意見宜しくお願い申し上げます。
###実現したいこと
次の《出力コード》にありますように、ループの中の<li>
に<?php echo rendseven();?>
と書くことによって、ランダムな1から7の値を、重複せずに出力したいと考えております。
そこで後述の《関数コード》を作ってみたのですが、これでは値が重複してしまうようで…ここから先に進めません。
どのようにしたら重複させることがなくなるか、どなたか良い方法をご教授願えればと思い質問させて頂きました。
###《出力コード》
php
1<?php if(have_posts()): while(have_posts()):the_post(); ?> 2 3<li class="no-<?php echo rendseven();?>"> 4<?php the_title(); ?> 5</li> 6 7<?php endwhile; endif; ?>
###《関数コード》
php
1<?php // 1から7の重複しないランダム番号を返す 2function rendseven (){ 3 4 // 整数値を配列に入れる 5 $ar_num = range(1,7); 6 7 // その配列をランダムに並び替える 8 shuffle($ar_num); 9 10 // 表示したい数分、配列の要素の値を取ってくる 11 for ($i = 0 ; $i < 1 ; $i++){ 12 return $ar_num[$i]; 13 } 14} 15?>
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/02 11:59
2018/12/02 12:13
2018/12/02 12:20
2018/12/02 12:25 編集