2015-11-23 4 views
1

У меня есть страница, на которой есть много фотографий. Я собираюсь перетасовать их, используя shuffle();Использование Shuffle(); со всеми фотографиями

Но вам придется использовать это.

$images = array 
(
'/images/carousel-1.jpg', 
'/images/carousel-2.jpg', 
'/images/carousel-3.jpg', 
'/images/carousel-4.jpg', 
'/images/carousel-5.jpg', 
'/images/carousel-6.jpg', 
); 

shuffle($images); // the magic 

foreach ($images as $image) 
{ 
echo '<div class="image-entry">'; 
echo "\t" . '<img src="' . $image . '" />'; 
echo '</div>'; 
} 

И HTML;

<div class="image-entry"> 
     <img src="/images/carousel-1.jpg" /> 
    </div> 
    <div class="image-entry"> 
     <img src="/images/carousel-2.jpg" /> 
    </div> 
    <div class="image-entry"> 
     <img src="/images/carousel-3.jpg" /> 
    </div> 
    <div class="image-entry"> 
     <img src="/images/carousel-4.jpg" /> 
    </div> 
    <div class="image-entry"> 
     <img src="/images/carousel-5.jpg" /> 
    </div> 
    <div class="image-entry"> 
     <img src="/images/carousel-6.jpg" /> 
    </div> 

(Это может продолжаться сотни фотографий)

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

ответ

0

Вы можете использовать:

$images = glob('/images/carousel-*.jpg'); 

создать массив со всеми соответствующими именами (см glob()), или использовать array_map() создать диапазон имен файлов:

$images = array_map(
    function($n) { 
     return "/images/carousel-$n.jpg"; 
    }, range(1,10) 
); 
+0

Так что, если я ставлю все мои фотографии в файле/Фотографии/Главная/ Я бы сделал $ images = glob ('/ Фотографии/Главная /') ;? –

+0

Что-то вроде ''/Фотографии/Главная/* '',''/Фотографии/Главная/*. Jpg'' или ''/ Фотографии/Главная/Карусель - *. Jpg'' будет работать лучше. См. [Glob (programming)] (https://en.wikipedia.org/wiki/Glob_%28programming%29) в Википедии. – yolenoyer

Смежные вопросы