1

3 つの画像のうちの 1 つだけを含む Web ページを開きたいと思います。ランダムな画像をいつでも開いてほしい。コードが機能しません。これは私が持っているものです:

 <?php
 $imageArray = array(
 1 => array("address" => "Daily_Deals_Updated1.png", "alt_text" => "Image 1"),
 2 => array("address" => "Daily_Deals_Updated2.png", "alt_text" => "Image 2"),
 3 => array("address" => "Daily_Deals_Updated3.png", "alt_text" => "Image 3"),
 );
 ?>
 <!DOCTYPE html>
 <html>
<head>
    <title>Daily Deals</title>
</head>
<body style="width: 100%;">
    <div style="margin: 100px auto 0; width: 454px;">
        <?php
        $randomImageNumber = array_rand($imageArray, 1);
        echo "<img src='" . $imageArray[$randomImageNumber]['address']' . " />";
        ?>

        <!--        <img src="Daily Deals_Updated.png" alt="Daily Deals!" /> -->
    </div>
</body>
 </html>

これが成功したら、ランダム性を少し変更して、画像が一定の割合でしか表示されないようにしたいと思います。たとえば、1 画像 45%、1 画像 45%、1 画像 10% などです。

Web ページには 1 つの画像以外に何もありません。他のファイルを含める必要がない 1 つのスクリプトにすべてを保持したいと思います。

編集:動作するコード!

 <?php
      $images=array(0=>'Daily_Deals_Updated.png',1=>'Daily_Deals_Updated2.png',2=>'Daily_Deals_Updated.png',);
 ?>
 <!DOCTYPE html>
 <html>
<head>
    <title>Daily Deals</title>
</head>
<body style="width: 100%;">
    <div style="margin: 100px auto 0; width: 454px;">
        <?php
            $r = rand(0, 100) / 100;

        if ($r < 0.75) {
            $output="<img src=\"Demonstration_Screen_1.png\" >";
            print($output);
        } else if ($r > 0.76 && $r < 0.94) {
            $output="<img src=\"Demonstration_Screen_2.png\" >";
                print($output);
        } else if ($r > 0.95)  {
            $output="<img src=\"Demonstration_Screen_3.png\" >";
            print($output);
        }
        ?>

    </div>
</body>
 </html>
4

2 に答える 2

3

r0 から 1 の間の乱数を生成し、以下の擬似コードに従います。

if (r < 0.45)
    display first image
else if (r < .9)
    display second image
else
    display third image

これは、任意の数のケースとそれぞれの確率に拡張できます。1 番目は から[0, 0.45)、2 番目は から[0.45, 0.9)、3 番目はからであることに注意してください[0.9, 1.0]。必要に応じて間隔を分割する必要があり、if/elseif ケースをいくつでも持つことができます。

于 2012-06-04T02:34:56.830 に答える
0

画像に img1、img2、img3 などの名前を付けます。

次に使用します

$img=rand(0,3);
$bg="img$img";
于 2012-06-04T03:06:27.003 に答える