PHPに詳しい方宜しくお願いします。

下記のランダム表示のPHPなのですが
列を指定しているのはどの部分になりますでしょうか?
もしくは指定できていない状態ならどう書き足せば良いでしょう?
教えて下さい。
<?php
// rndtxtには、テキストを入れる。改行はしないようにする
// テキストを増やしたりする場合は、"[ ]"の数字が0から順になるようにする
$rndtxt[0] = 'テキスト1';
$rndtxt[1] = 'テキスト2';
$rndtxt[2] = 'テキスト3';
$rndtxt[3] = 'テキスト4';
$rndtxt[4] = 'テキスト5';
$rndtxt[5] = 'テキスト6';
$rndtxt[6] = 'テキスト7';

for ($i = 1 ; $i <= 3 ; $i++){
$length = count($rndtxt) - 1;
srand( (double)microtime()*1000000 );
$num=round( rand(0,$length) );
print("$rndtxt[$num]");
if ($i % 1 == 0){
print"<br>";
} else {
print"&nbsp;";
}
for ($j = $num ; $j <= $length ; $j++){
$rndtxt[$j] = $rndtxt[$j+1];
}
unset($rndtxt[count($rndtxt) - 1]);
}
?>

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2006/10/17 16:19:59
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:ito-yu No.1

回答回数323ベストアンサー獲得回数14

ポイント20pt

$num=round( rand(0,$length) );

の行の

rand(0,$length)

です。

ちなみに、php4.2以降ではsrand()の行は不要です。

また、rand()を囲むround()は不要です。rand()は整数を返すので。

http://jp2.php.net/rand

なお、mt_rand関数の方がオススメです。

rand(0,$length) を mt_rand(0,$length) に書きかえるだけです

http://jp2.php.net/mt_rand

id:praide

的確なアドバイスありがとうございます。

2006/10/12 17:18:45
id:yoneto164 No.2

回答回数813ベストアンサー獲得回数94

ポイント30pt

for ($i = 1 ; $i <= 3 ; $i++){

$i <= 3

が表示する総数を指します。


1行に表示する列の数を指定しているのは

if ($i % 1 == 0){

の部分で、

$i % 2 == 0

とすれば2列で表示されます。

その場合は

$i <= 3

も2の倍数にしたほうが良いかも知れません。

id:praide

なるほど。解りやすい。ありがとうございます。

2006/10/12 17:18:47
id:moke3rd No.3

回答回数34ベストアンサー獲得回数3

ポイント30pt

for ($i = 1 ; $i <= 3 ; $i++){

この部分の「3」が出力する項目数。

if ($i % 1 == 0){

この部分は変更されたのでしょうか?

意味のない条件になっています。

「1」が出力する列数になります。

つまり、この設定では3つの項目が1行に1つずつ表示されます。

たとえば、6つの項目を2つずつ表示するには、上記をそれぞれ

「6」、「2」に変更すれば良いです。

id:praide

なるほど。解りやすい。ありがとうございます。

2006/10/12 17:18:50

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません