0

PHPファイルにあるこのランダムページスクリプトを見つけました。ブラウザで更新リロード)をクリックしたときにページを更新するのが難しいことに少し不満を感じています。各ランダムページには記事があり、一部には2つの画像がありますが、ほとんどは1つの画像です。記事は3つだけです。

問題は、ページを更新するのに2〜3のクリックが必要ことです。ボタンはありません。ブラウザすべてのブラウザ)でページを[再読み込み]をクリックするか、サイトにアクセスしたときにのみページが更新されます。それが機能するためには、更新するために常に少なくとも2または3回のクリックが必要です。

コードは次のとおりです。

<?php
$pagesArray = array("article1.php", "article2.php", "article3.php");
$randNum = rand(0, count($pagesArray)-1);
echo $pagesArray[$randNum];
?> 

また、 「シャッフル」を使用するようにスクリプトを変更してみます

<?php
$pagesArray = array("article1.php", "article2.php", "article3.php");
shuffle($pagesArray);
echo $pagesArray[0];
?> 

また、 「array_rand」を使用します

<?php
$pagesArray = array("article1.php", "article2.php", "article3.php");
array_rand($pagesArray);
echo $pagesArray[0];
?> 

コードを改善する方法はありますか?コードを機能させるには、2〜3回クリックするのではなく、コードでさまざまなページを更新するだけです。私はそれを正しく機能させる方法の提案に感謝します、またはどんな例でも私が全体像を見るために感謝するでしょう!

ありがとう

4

1 に答える 1

3

私はPHPに精通していませんが、配列内のランダム要素を選択する方法が最も速いかどうかを尋ねる場合は、それがオプション1だと思います。ランダム整数の生成には一定時間がかかり、配列の要素を返します。配列インデックスによっても一定の時間がかかるはずです。シャッフルがどのように実装されているかはわかりませんが、要素の配列をシャッフルするよりも、乱数を取得する方が時間がかからないことは間違いありません。いずれにせよ、配列に要素が数個しかない場合は、ユーザーに目立った違いはないはずです。

「動作」するまでに2、3回の更新が必要な理由については、同じページを何度も返しているためだと思います。ユーザーが現在表示している(またはアクセスした)ページを取得できる場合は、アイテムを選択する前に、配列からアイテムを削除するだけです。

于 2012-06-19T17:52:26.817 に答える