Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

функция asort

333
08 октября 2006 года
GHopper
200 / / 28.12.2004
Здраствуйте!
Пытаюсь написать скрипт, который должен генерировать html-страничку с картинками из заданной папки, размещенными в упорядоченном виде.

Сам скрипт:

$dir_name = "./image/photo";

if ($dir = @opendir($dir_name)) {
while (($file = readdir($dir)) !== false) {
if (($file != ".") && ($file != ".."))
$photo_arr[] = array($file => fileatime($dir_name."/".$file));
}
closedir($dir);
if (count($photo_arr)==0)
echo("Нету элементов для отображения");
else
{
foreach($photo_arr as $key1 => $val1)
foreach ($val1 as $key2 => $val2)
echo("$key2\t - \t$val2<br>");
echo("<br><br>");
asort($photo_arr);
reset ($photo_arr);
foreach($photo_arr as $key1 => $val1)
foreach ($val1 as $key2 => $val2)
echo("$key2\t - \t$val2<br>");
echo("<br><br>");

echo("<center>");
foreach($photo_arr as $ind => $arr)
foreach($arr as $phot => $tme)
echo ("<img width=\"400\" height=\"250\" src=\"$dir_name/$phot\"><br><br>");
echo("</center>");
}

Результат работы скрипта такой:
antalya 005.jpg - 1160280781
cdd.jpg - 1160280776
Shelin.JPG - 1160280771
ки.JPG - 1160280785


ки.JPG - 1160280785
Shelin.JPG - 1160280771
cdd.jpg - 1160280776
antalya 005.jpg - 1160280781

Вопрос: почему массив не сортируется по второму столбцу?
244
08 октября 2006 года
UAS
2.0K / / 19.07.2006
Оформь по человечески код, там и поможем!!! А вероятняя всего не ту функцию сортировки выбрал... Иди на php.net поищи функции сортировки
333
08 октября 2006 года
GHopper
200 / / 28.12.2004
что называется "Оформить по человечески"?
244
08 октября 2006 года
UAS
2.0K / / 19.07.2006
В смысле нафоруме есть тег - \[code\]\[php\]\[/php\]\[/code\] (убери бэкслэши) - так вот туда и заноси между php данные, и отдели пробелами, чтоб было понятно что где находится. Этикет написание, так называемый.. Потому что непонятный код читать никто не хочет - лишь голову морочить...

Лана... У меня сёдня хорошее настроение и я помогу переписать код по-человечески! Заодно я перепишу его, так как за такой код я бы выгнал тебя с позором! *Если б я конечно был начальником :)*

Код:
$dir_name = "./image/photo";

if(!is_dir($dir_name))die('Такой папки не существует');

$dir=dir($dir_name);
$dir->rewind();
while(($file=$dir->read() !== false) {
    if(($file==".") || ($file==".."))continue;
    $photo_arr[$file] = fileatime($dir_name."/".$file);
}
$dir->close();

if(count($photo_arr)==0) {
    echo("Нету элементов для отображения");
} else {
    foreach ($photo_arr as $key2 => $val2) {
        echo("$key2\t - \t$val2<br>");
    }
    echo("<br><br>");

    asort($photo_arr);
    reset ($photo_arr);

    foreach ($photo_arr as $key2 => $val2) {
        echo("$key2\t - \t$val2<br>");
    }
    echo("<br><br>");
    echo("<center>");

    foreach($photo_arr as $phot => $tme) {
        echo ('<img width="400" height="250" src="'.$dir_name.'/'.$phot.'"><br><br>');
    }
   
    echo("</center>");
}


Вот так уже намного приятней понятней! Не так ли???

И попробуй использовать не asort, а natsort()!!!
333
08 октября 2006 года
GHopper
200 / / 28.12.2004
про bb-коды знать не мог, т.к. в моем браузере (Opera9.0) их нигде не видать... или я их где-то отключил... или стоит отображать рисунки... Короче надо принять к сведению. UAS спасибо за оформление кода, может это кому-то поможет.
По поводу функций сортировки - перепробывал все, но внятного результата так и не добился... Толи на сортировку влияет ключь, помимо самого значение, толи еще чего...
333
08 октября 2006 года
GHopper
200 / / 28.12.2004
Давайте упростим задачу - - конкретизируем все!
 
Код:
$photo_arr[] = array("antalya 005.jpg" => 1160280781);
$photo_arr[] = array("cdd.jpg" => 1160298874);
$photo_arr[] = array("Shelin.JPG" => 1160303023);
$photo_arr[] = array("ки.JPG" => 1160280785);

print_r($photo_arr);
arsort($photo_arr);
reset ($photo_arr);
echo("<br><br>");
print_r($photo_arr);

Результат работы скрипта:
 
Код:
Array ( [0] => Array ( [antalya 005.jpg] => 1160280781 ) [1] => Array ( [cdd.jpg] => 1160298874 ) [2] => Array ( [Shelin.JPG] => 1160303023 ) [3] => Array ( [ки.JPG] => 1160280785 ) )

Array ( [3] => Array ( [ки.JPG] => 1160280785 ) [2] => Array ( [Shelin.JPG] => 1160303023 ) [1] => Array ( [cdd.jpg] => 1160298874 ) [0] => Array ( [antalya 005.jpg] => 1160280781 ) )

Теперь объясните мне как отсортирован массив, и как его отсортировать по возрастанию сохраняя ключи?????
244
08 октября 2006 года
UAS
2.0K / / 19.07.2006
Вопрос! А как ты собираешься сортировать? По какому полю? По времени последнего обращения к нему?
4
08 октября 2006 года
mike
3.7K / / 01.10.2002
А зачем тебе двухмерный массив ??? Так проще и работает:

Код:
<?php
$photo_arr = Array(
"antalya 005.jpg" => 1160280781,
"cdd.jpg" => 1160298874,
"Shelin.JPG" => 1160303023,
"ки.JPG" => 1160280785
);
print "<PRE>";
print_r($photo_arr);
arsort($photo_arr);
print_r($photo_arr);
?>
333
08 октября 2006 года
GHopper
200 / / 28.12.2004
Тупак выявлен!
Код:
<?php
$dir_name = "./image/photo";
if ($dir = @opendir($dir_name)) {
  while (($file = readdir($dir)) !== false) {
    if (($file != ".") && ($file != ".."))
      $photo_arr[$file] = fileatime($dir_name."/".$file);
  }
  closedir($dir);
  if (count($photo_arr)==0)
    echo("Нету элементов для отображения");
  else
  {
    foreach($photo_arr as $key1 => $val1)
      echo("$key1\t - \t$val1<br>");
    echo("<br><br>");
    arsort($photo_arr);
    reset ($photo_arr);
    foreach($photo_arr as $key1 => $val1)
      echo("$key1\t - \t$val1<br>");
    echo("<br><br>");

    echo("<center>");
    foreach($photo_arr as $ind => $phot)
      echo ("<img width=\"400\" height=\"250\" src=\"$dir_name/$ind\"><br><br>");
    echo("</center>");
  }
}
?>

У меня ключами массива были числа, а значениями массивы, которые сортируются по правилам массивов.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог