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 ) )
функция asort
Пытаюсь написать скрипт, который должен генерировать 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
Вопрос: почему массив не сортируется по второму столбцу?
Оформь по человечески код, там и поможем!!! А вероятняя всего не ту функцию сортировки выбрал... Иди на php.net поищи функции сортировки
что называется "Оформить по человечески"?
Лана... У меня сёдня хорошее настроение и я помогу переписать код по-человечески! Заодно я перепишу его, так как за такой код я бы выгнал тебя с позором! *Если б я конечно был начальником :)*
Код:
$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>");
}
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()!!!
По поводу функций сортировки - перепробывал все, но внятного результата так и не добился... Толи на сортировку влияет ключь, помимо самого значение, толи еще чего...
Код:
$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);
$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);
Результат работы скрипта:
Код:
Теперь объясните мне как отсортирован массив, и как его отсортировать по возрастанию сохраняя ключи?????
Вопрос! А как ты собираешься сортировать? По какому полю? По времени последнего обращения к нему?
Код:
<?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);
?>
$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);
?>
Код:
<?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>");
}
}
?>
$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>");
}
}
?>
У меня ключами массива были числа, а значениями массивы, которые сортируются по правилам массивов.