функция asort

GHopper

Новичок
функция asort

Здраствуйте!
Пытаюсь написать скрипт, который должен генерировать html-страничку с картинками из заданной папки, размещенными в упорядоченном виде. Упорядочевание должно происходить по времени создания файла

Сам скрипт:
PHP:
$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

Вопрос: почему массив не сортируется по второму столбцу?
 

SelenIT

IT-лунатик :)
GHopper

А по первому он разве сортируется? Разве [m]asort[/m] рассчитана на сортировку двумерных массивов? Да и нужен ли тут двумерный массив?
 

GHopper

Новичок
Почитал и убедился что все делаю првильно... может я совсем тупой?
Упростим задачу - конкретизируем все!

$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 ) )

Теперь объясните мне как отсортирован массив, и как его отсортировать по возрастанию сохраняя ключи?????
 

Фанат

oncle terrible
Команда форума
внимательно прочитать документацию на функцию аsort?
 

SelenIT

IT-лунатик :)
GHopper

У тебя ключи массива - числа, а значения - массивы. Они и сортируются по правилам сравнения массивов. Ты, видимо, хочешь добиться, чтобы ключами были имена файлов, а значениями - время создания. Тогда так и пиши:
PHP:
$photo_arr["antalya 005.jpg"] = 1160280781;
$photo_arr["cdd.jpg"] = 1160298874; // и т.д.
 

GHopper

Новичок
О! Работает! Спасибо всем участвовавшим, особенно SelenIT.
 
Сверху