人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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]);
}
?>

●質問者: praide
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:DOUBLE PHP print Rand テキスト
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● ito-yu
●20ポイント

$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

◎質問者からの返答

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


2 ● ヨネちゃん
●30ポイント

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

$i <= 3

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


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

if ($i % 1 == 0){

の部分で、

$i % 2 == 0

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

その場合は

$i <= 3

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

◎質問者からの返答

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


3 ● moke3rd
●30ポイント

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

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

if ($i % 1 == 0){

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

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

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

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

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

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

◎質問者からの返答

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ