Помогите с Обратной сортировкой смайлов

559
.
Как вывести смайлы чтобы они шли поубыванию для 3.2.2?
Тоесть не в хаотичном порядке вот код из 3.2.2


Знаю что с помощью функции rsort() но где ее применить не понял!

$array = array(); // Разрешаем создание массива
$dir = opendir('../pers/' . $id);  // Открываем нужную папку

while ($file = readdir($dir)) {
if (($file != '.') && ($file != "..") && ($file != "name.dat") && ($file != ".svn") && ($file != "index.php")) {
$array[] = $file;
}
}
closedir($dir);
$total = count($array);
$end = $start + $kmess;
if ($end > $total)
$end = $total;
if ($total > 0) {
for ($i = $start; $i < $end; $i++) {
    
$pers = preg_replace('#^(.*?).(gif|jpg|png)$#isU', '$1', $array[$i], 1);
echo is_integer($i / 2) ? '<div class="list1">' : '<div class="list2">';
echo '<img src="../pers/' . $id . '/' . $array[$i] . '" alt="" /> - ' . $pers . '</div>';
}

}



Брал код из 4 ветки

foreach(glob($rootpath . 'images/smileys/user/*/*') as $var){
    $file = basename($var);
    $name = explode(".", $file);
    if (in_array($name[1], $ext)) {
        $path = str_replace('..', $set['homeurl'], dirname($var));
        $smileys['usr'][':' . functions::trans($name[0]) . ':'] = '<img src="' . $path . '/' . $file . '" alt="" />';
        $smileys['usr'][':' . $name[0] . ':'] = '<img src="' . $path . '/' . $file . '" alt="" />';
    }
}


Но тут две проблемы

1. Название категории
2. Нету скролинга
3. И смайлы идут не верно тоесть

Пример вывода такое

10 1 11 12 13 14 ... 20 2 21 22 ...
.
Ps - наше всё
перенесено
.
(\/)____o_O____(\/)
blackvj, после закрытия директории можно сортируй массив $array
.
blackvj
Koenig, Сортировку в цикле for делать?

Ибо так получается пустота

closedir($dir);

$total = count($array);
$array = rsort($array);
$end = $start + $kmess;...
.
Сделал так...из готового примера


$pers = $array;
sort($pers);
reset($pers);
while (list($key, $val) = each($pers)) {
$pers = preg_replace('#^(.*?).(gif|jpg|png)$#isU', '$1', $val, 1);
echo is_integer($i / 2) ? '<div class="list1">' : '<div class="list2">';
echo '<img src="../pers/' . $id . '/' . $val . '" alt="" /> - ' . $val . '</div>';
}


Вывод идет такой (все файлы в папке имеют вид 1, 2, 3, 4 ...)

А выводит их так

1 10 11 12... 2 20 21....

А как сделать так?

1 2 3 4...10
.
Let Mortal Kombat begin
Это особенности ОС.
.
Даже тот же

for ($i = $start; $i < $end; $i++)


Во всех мануалах написано что должен идти сортинг 1 2 3 4 5...

А он в хаосе сортирует...???!!!
.
seg0ro, Я это уже понял... LINUX

Но как тогда сделать так как я хочу???... написать на офф. сайт LINUX почему у них корявый сортинг?!
.
Или тогда допустим я использую

$pers = $array;
sort($pers);
reset($pers);
while (list($key, $val) = each($pers)) {
$pers = preg_replace('#^(.*?).(gif|jpg|png)$#isU', '$1', $val, 1);
echo is_integer($i / 2) ? '<div class="list1">' : '<div class="list2">';
echo '<img src="../pers/' . $id . '/' . $val . '" alt="" /> - ' . $val . '</div>';
}


Тогда как сделать листинг? А не полный вывод всех файлов?

Допустим даже если я не буду использовать однознаковые числа...
.
(\/)____o_O____(\/)
blackvj, вне цикла, после закрытия close
rsort($array);
не надо присвоения, просто сорт
еще есть вариант другой, складывать массив через array_push или array_unshift
http://www.php.net/manual/ru/f ... t.php
$array[] = $file; заменить на
array_unshift($array, $file);
Всего: 34