2016-07-08 10 views
0

このコードでは、画像がページ内で「ランダム」に表示されます。表示する画像の数を制限する

<?php 
$myImagesList = array (
    'image1.png', 
    'image2.png', 
    'image3.png', 
    'image4.png' 
); 



shuffle ($myImagesList); 
foreach ($myImagesList as $displayImagesAtRandomOrder) { 
echo '<img src="/imagens/' . $displayImagesAtRandomOrder . '" width="200" height="40" border="0" />'; 
} 
?> 

例:

image1.png image3.png image2.png image4.png

F5のresheshページ

image2.png image3.png image4.png image3.png

f5 resheshページ

image1.png image4.png image3.png image2.png

F5のresheshページ

image2.png image3.png image1.png image4.png


しかし、どのようにしますI一度に2つの画像しか表示されないのですか? 例:

image1.pngのimage3.png

F5のresheshページ

image3.pngのimage2.png

F5のresheshページ

image2.pngのimage4.png

F5 resheshページ

image3.pngのimage1.png

+1

あなたが望むイメージの数を出力した後で、あなたのループから 'break'が出てしまいます。 Dupe:http://stackoverflow.com/questions/588892/can-you-exit-a-loop-in-php –

+0

[ループでPHPが実行される回数を制限する]の可能な複製(http://stackoverflow.com/questions/1998204 /制限回数 - ループ実行 - PHP) –

答えて

0

単純なアプローチは、ちょうどそれらをシャッフルした後、反復

<?php 
$myImagesList = array (
    'image1.png', 
    'image2.png', 
    'image3.png', 
    'image4.png' 
); 

$count = 1; //set up our count, start at our first image 
$imagesToShow = 2; //how many images we want to show 



shuffle ($myImagesList); 
foreach ($myImagesList as $displayImagesAtRandomOrder) { 
    //if we have reached our count, let's break out of our loop 
    if($count > $imagesToShow) { break; } 
    echo '<img src="/imagens/' . $displayImagesAtRandomOrder . '" width="200" height="40" border="0" />'; 
    $count++; //increase our count each loop iteration 
} 
?> 
0

を制限することで、あなただけのループは二回配列の最初の2つ(0および1)のアイテムを取ることができます:

shuffle ($myImagesList); 
for ($i=0; $i<2; $i++) { 
echo '<img src="/imagens/' . $myImagesList[$i] . '" width="200" height="40" border="0" />'; 
} 
+1

あなたの前には$がありません – ied3vil

+0

Oh yeah、php。はい、ありがとう@ ied3vil –

0

はわずか2 iteractionとfor-loopの代わりforeachを使用します。

<?php 

$myImagesList = array (
    'image1.png', 
    'image2.png', 
    'image3.png', 
    'image4.png' 
); 

shuffle ($myImagesList); 

for($index = 0; $index < 2; $index++){ 
    echo '<img src="/imagens/' . $myImagesList[$index] . '" width="200" height="40" border="0" />'; 
} 

?> 

次の2つのキーワードbeetwen違いがわからない場合:what are the difference between for loop & for each loop in php

0
$imageCounter = 0; 
foreach ($myImagesList as $displayImagesAtRandomOrder) { 
    $imageCounter++; 
    echo '<img src="/imagens/' . $displayImagesAtRandomOrder . '" width="200" height="40" border="0" />'; 
    if (!($imageCounter % 2)) break; 
} 

を上記のコードは2枚の画像が表示されます。その番号を任意の番号に変更することができます。それが役に立てば幸い。

関連する問題