0

私はこのようなことをする他のアプローチがあるかどうか疑問に思っています:

$classes = array("tag5", "tag2", "tag9", "tag4", "tag1", "tag6", "tag10", "tag8", "tag3", "tag7" );
shuffle($tags); 
foreach ($tags as $tag) { 
    $class = $classes[array_rand($classes)];
    echo "<li><a href='#' class='".$class."'> ".$tag."</a></li>"; 
}

つまり、このアプローチを使用すると、同じa.classが複数回選択され、一部のクラスはまったく選択されません。

私はtag1からtag10を使用することを検討しており、10回ごとに取得されるまで同じクラスを2回選択しません。

誰かが私がこれをどのように達成できるか知っていますか?

ありとあらゆる返信をありがとう!

4

1 に答える 1

2

でクラスの順序をすでにランダム化しているので、クラスをshuffle再度ランダム化する理由はありません。順番にループするだけです。

$classes = array("tag5", "tag2", "tag9", "tag4", "tag1", "tag6", "tag10", "tag8", "tag3", "tag7" );
shuffle($tags); 
foreach ($tags as $i => $tag) { 
    $class = $classes[$i % count($classes)];
    echo "<li><a href='#' class='".$class."'> ".$tag."</a></li>"; 
}
于 2011-10-22T15:36:16.193 に答える