здравствуйте, нужно отсортировать $filename по дате, либо от большего к меньшему по названию - имя $filename соответствует значению time(). Сортировку которую я использую отлично подходит, если $filename находиться в одной папке, но у меня несколько папок ( glob("base/*) ), поэтому сортировка работает не корректно. Помогите отсортировать $filename из всех папок. Спасибо. Код (Text): $Results = glob("base/*/*", GLOB_BRACE); natsort( $Results ); $Results = array_reverse($Results); foreach ($Results as $filename) { require "$filename/title.txt"; }
Записываете в новый массив пары ключ-значение, где ключ - имя файла без пути, значение - имя файла с путем. И сортируете новый массив обычным образом. Проблемы будут, если у вас в разных папках есть файлы с одинаковыми именами.
Ну, раз уж вы пишете не в разделы "РНР для новичков" и "Сделайте за меня", значит, обладаете некоторым опытом в РНР. Что для вас представляет сложность? Пройтись в цикле по массиву? Разбить строку на путь и имя файла? Применить функцию asort? Исправлено — тема теперь в "PHP для новичков" Модератор
получилось вот что, только не понятно как объединить 1,2,3 ?? Код (Text): $me = array('1', '2', '3); foreach ($me as $ky){ $name = scandir('base/'.$ky.'/'); for($i=2; $i<=(sizeof($name)-1); $i++) { echo $name[$i]."<br>"; } }
я так понял $prim = array_merge($me); asort($prim); - куда это все нужно подставить? нужно просканировать scandir все папки 1,2,3 и отсортировать то, что внутри
В начале скрипта $all_names = array(); А в цикле: $name = scandir('base/'.$ky.'/'); $all_names = array_merge($all_names, $name);
т.е. вот так? Код (Text): $all_names = array(); $all_names = array('1', '2', '3); foreach ($me as $ky){ $name = scandir('base/'.$ky.'/'); $all_names = array_merge($all_names, $name); for($i=2; $i<=(sizeof($all_names )-1); $i++) { echo $all_names [$i]."<br>"; } } у меня не получилось. со вчера у меня получилось вывести данные таким образом: Код (Text): $it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator('base/'.$cityname.'/')); while($it->valid()) { echo substr($it->getSubPath(),2) . "\n\n<br>";//substr $it->next(); } все получилось, НО почему то вывод повторяется несколько раз -> 1407314397 1407314397 1407314397 1407313996 1407313996 1407313996 1407313892 1407313892 1407313892 1407313892 1407313874 1407313874 1407313874 1407313915 1407313915 1407313915 Как исправить? тут даже сортировать проще, по названию, но дубликаты мешают