Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Первая строчка с уникальным классом
Форумы портала PHP.SU » PHP » Программирование на PHP » Первая строчка с уникальным классом

Страниц (1): [1]
 

1. Платинум - 26 Апреля, 2014 - 07:16:57 - перейти к сообщению
Всем добрый день! Есть скрипт, он ниже. Он генерирует случайным образом цифры от 1 до 10 и расставляет их в произвольном порядке, дак вот, мне надо, что бы первая строка будь то номер (1 либо 3 либо 8 итд...), была с уникальным классом slide index, а все остальные с slide. Помогите пожалуйста додумать ребята..(
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. for ($i=1;$i<=10;$i++) $arr[]=$i;
  4.  
  5. while (count($arr)>0){
  6.  
  7.     shuffle($arr);
  8.     echo '<div class="slide"><img src="slide_images/'.array_pop($arr).'.jpg" border="0" /></div>';
  9. }
  10.  
  11. ?>
2. T1grOK - 26 Апреля, 2014 - 08:56:36 - перейти к сообщению
А зачем при каждой итерации перемешивать массив?
И зачем вот это
PHP:
скопировать код в буфер обмена
  1. for ($i=1;$i<=10;$i++) $arr[]=$i;

Когда есть функция range.

PHP:
скопировать код в буфер обмена
  1. $arr = range(1, 10);
  2. shuffle($arr);
  3.  
  4. while (($count_elements = count($arr))>0){
  5.     echo '<div class="slide'.($count_elements == 10 ? 'index' : '').'"><img src="slide_images/'.array_pop($arr).'.jpg" border="0" /></div>';
  6. }
3. Платинум - 26 Апреля, 2014 - 10:05:08 - перейти к сообщению
T1grOK, Спасибо!) Все работает!) "+" Тебе)
4. Платинум - 27 Апреля, 2014 - 17:18:19 - перейти к сообщению
В продолжении темы...

Скрипт работает как надо:
PHP:
скопировать код в буфер обмена
  1. $arr = range(1, 10);
  2. shuffle($arr);
  3.  
  4. while (($count_elements = count($arr))>0){
  5.     echo '<div class="slide'.($count_elements == 10 ? 'index' : '').'"><img src="slide_images/'.array_pop($arr).'.jpg" border="0" /></div>';
  6. }



Но ниже должен работать скрипт, который будет расставлять название картинок в таком же порядке, как и скрипт выше
Пробовал так:


PHP:
скопировать код в буфер обмена
  1. $des = array(
  2.                         1 =>'Первая картинка',
  3.                         2 =>'Вторая картинка',
  4.                         3 =>'Третья картинка',
  5.                         4 =>'Четвертая картинка',
  6.                         5 =>'Пятая картинка',
  7.                         6 =>'Шестая картинка',
  8.                         7 =>'Седьмая картинка',
  9.                         8 =>'Восьмая картинка',
  10.                         9 =>'Девятая картинка',
  11.                         10 =>'1Десятая картинка'
  12.                        
  13.                         );
  14.                        
  15.                         while (($count_elements = count($arr))>0){
  16.                        
  17. echo'<div class="sl-descr">
  18. <div id="desc">'.$des[array_pop($arr)].'</div>
  19. </div>';
  20. }
  21.  
  22. ?
  23.  
  24.  


но не получается, прошу вашей помощи, Товарищи... Радость
5. Платинум - 27 Апреля, 2014 - 19:31:25 - перейти к сообщению
Проблему решил просто, продублировал переменную $arr другой переменной.

 

Powered by ExBB FM 1.0 RC1