Нужно чтобы цыкл упорядоченно вывел все элементы массива с именами файлов.

IceCream

Новичок
Нужно чтобы цыкл упорядоченно вывел все элементы массива с именами файлов.

Не могу справится с куском кода. Нужно чтобы цыкл упорядоченно вывел все элементы массива. Использовал для этого такой код
PHP:
$CONF["file_types"] ='jpg|jpeg';
$dir = opendir('images/show/');
while($fname = readdir($dir)){
          $file_array = explode('.', $fname);
          $num = count($file_array);
          $fileres = $file_array[($num - 1)];
          if(in_array($fileres, $file_types)){
            $files[] = $fname;
 for ($i = 0; $i <= count($files); $i++) 
  {
    echo $files[$i]."<br> ";
  } 
          }
}
имена всех изображений в виде
Код:
1.jpg

1.jpg
2.jpg

1.jpg
2.jpg
3.jpg

1.jpg
2.jpg
3.jpg
4.jpg
Но мне нужен список вида
1.jpg
2.jpg
3.jpg
4.jpg
чтобы использовать его в дальнейшем в скрипте...

Как этого добиться?
 

rotoZOOM

ACM maniac
1. Вынести вывод списка за пределы while
2. Проверить условие выхода из цикла печати
 

IceCream

Новичок
Да. Действительно. Спасибо!

-~{}~ 29.09.09 06:33:

Теперь ещё одна проблема.


PHP:
$CONF["file_types"] ='jpg|jpeg';
$dir = opendir('images/show/');
while($fname = readdir($dir)){
          $file_array = explode('.', $fname);
          $num = count($file_array);
          $fileres = $file_array[($num - 1)];
          if(in_array($fileres, $file_types)){
            $files[] = $fname;
    }
}
 for ($i = 0; $i <= count($files); $i++) 
  {

    echo ''.$files[$i]. ' | '.$i.' <br> ';
  }
функция count получает количество элементов массива. Их 4.
Но первый элемент при выводе маркируется как нулевой, из-за чего цикл выполняется 5 раз. В пятый раз он возвращает пустое значение для $files[$i] и цифру 4 для $i

1.jpg | 0
2.jpg | 1
3.jpg | 2
4.jpg | 3
| 4

Если жёстко задать количество элементов массива
PHP:
 for ($i = 0; $i <= 3; $i++)
То Всё отображается верно. Но так, как скрипт как раз таки пишется чтобы картинки не прописывать в ручную это не подходит...

как одолеть?
 

zerkms

TDD infected
Команда форума
1. $i < count($files);
2. echo ($i + 1);
3. phpfaq.ru/debug - почитай о E_ALL и выводе ошибок
 

IceCream

Новичок
Спасибо за помощь!
3- вывод ошибок включен.
2-чтобы нумерация шла с еденицы не критично.
1 - это помогло. Хотя на php.su был указан использованный мной вариант. :(
 

zerkms

TDD infected
Команда форума
IceCream

foreach ($files as $i => $file) {
echo $file . '-'. ($i+1) . '<br>';
}

вот ещё инфа для размышления
 
Сверху