2015-12-16 2 views
1

этот скрипт показывает 50 случайных изображений , которые меняются самостоятельно. , но иногда показывают одинаковые изображения как не показывать одни и те же изображения?не отображаются одинаковые изображения

мой код

<?php 
     $all_images = glob("wp-content/themes/mysite/img-company/{*.jpg, *.JPG, *.JPEG, *.png, *.PNG}", GLOB_BRACE); 

$images = glob("wp-content/themes/mysite/img-company/{*.jpg, *.JPG, *.JPEG, *.png, *.PNG}", GLOB_BRACE); 
shuffle($all_images); 



foreach ($all_images as $index => $image) { 
    if ($index == 50) break; // Only print 50 images 
    $image_name = basename($image); 
    $randomImage = $images[array_rand($images)]; 
    echo "<li><img src='/wp-content/themes/mysite/img-company/{$image_name}' /><img src='/$randomImage' /></li>"; 
} 
    ?> 

ответ

2

Очевидным способом было бы удалить представлено изображение из массива:

$randomImage = $images[array_rand($images)]; 
$images = array_diff($images, array($randomImage)); 
0

Другое решение: просто использовать незадана для удаления элемента из массива, как это:

$random = array_rand($images); 
$randomImage = $images[$random]; 
unset($images[$random]); 
Смежные вопросы