ABCDEの中からランダムにひとつ選んで表示するスプリクトはサンプルなどもあるのですが、ABCDEすべてをランダムに並べ替えて表示する方法はどうすればいいのでしょうか?
例えば
ACDEB
EBDCA
このような感じです。
まったくの初心者なので具体的に書いて下さるとうれしいです。
<?php
$a = ’ABCDE’ ;
$tmp = preg_split( ’//’, $a, -1, PREG_SPLIT_NO_EMPTY) ;
shuffle($tmp) ;
$a = implode($tmp) ;
print $a ;
?>
文字列ならこんな感じ。
最初から配列なら shuffle を使うだけです。
<?php
$a = array (’<a href=”aaa”>aaa</a>’, ’<a href=”bbb”>bbb</a>’, ’<a href=”ccc”>ccc</a>’, ’<a href=”ddd”>ddd</a>’, ’<a href=”eee”>eee</a>’) ;
shuffle($a) ;
while ($a) {
print array_pop($a) . ’ ’ ;
}
?>
状況がもうひとつ分かりませんが、例えばこう?
ありがとうございます
これで動きますかね?確認してみます。
PHP: array_rand - Manual
array_rand()を使えば、できるかと思います。
※もしかしたら、下記コードの中で半角文字がhatenaシステムによって全角に変換されているところがあるようであれば、適宜読み変えてください。
<?php
$url_array = array(’http://www.yahoo.co.jp’,’http://www.infoseek.co.jp’,’http://www.goo.ne.jp’,’http://www.hatena.ne.jp’,’http://www.livedoor.com’);
srand ((float) microtime() * 10000000);
$url_num = count($url_array);
$rand_keys = array_rand ($url_array, $url_num);
for($i=0;$i<$url_num;$i++){
print $url_array[$rand_keys[$i]] . ”
¥n”;
}
?>
上記プログラムの出力例:(一例。リロードすると異なる結果が表示されます。)
ありがとうございます
確かめてみます。質問は一旦終了させてもらいます。
ありがとうございます
書き方が悪かったので訂正します
AとかBはリンク形式なんです。
xxx