Закрепить папки вверху

1. KOZZ (04.09.2010 / 09:01)
Сделал функцию для usort - не пашет
<?
# сортировка "папки вверху"
function sort_dirup($a) 
{
if(stripos($a,'/') !== false) {return 1;} else {return 0;}
}
?>


2. Саня (04.09.2010 / 09:27)
Сути не понял

3. KOZZ (04.09.2010 / 09:36)
2, сканирую папку, получаю массив с названиями файлов / папок.
нужно чтобы папки были в начале этого массива

4. Azzido (04.09.2010 / 09:45)
ну тут вариант только если readdir проходя, заносить в два массива, определяя тип file_type, массив с папками и массив с файлами,отсортировать каждый по алфавиту, потом их объединить array_merge и циклом вывести

5. KOZZ (04.09.2010 / 09:50)
4, я думал об этом, но че то как то не впечатляет.
да и я glob юзаю
отладить функцию предложенную мною будет лучше. там вроде надо 2 аргумента, но я че то не осилил %)
хммм, а как я узнаю что это папка а не файл, если юзать глоб? sad


6. Azzido (04.09.2010 / 09:54)
ну я предложил именно readdir, потому что в данном случае она будет выгодней, если поочередно перебирать объекты, узнавая их тип, по другому никак, я вообще непонял смысла твоей функции, зачем проверять на слеш?!

7. KOZZ (04.09.2010 / 09:56)
6, да понял уже сам, когда пост редачил...
скорее всего придется делать твоим способом, иначе придется по несколько раз цикл юзать

8. Lugaro (05.09.2010 / 03:51)
Как я понимаю тебе при выводе нужно закрепленные папки в верху выводить ? или же тебе нужен только массив этих папок? если первый вариант, то просто в цикле не пиши сразу echo, а просто собирай 2 переменных с закрепленными папками и обычными
if($dir == 'закреплена'){
$listDir1 .= '...';
}else{
$listDir2 .= '...';
}
А потом просто выводи сначала первую потом вторую

9. Станислав (05.09.2010 / 11:01)
1. МеталлоgетектоР eGo, хм, ещё как вариант, сделай 2 цикла.
Первый цикл выводит все папки, а второй все файлы. Так и получится, что папки вверху будут. Думаю, самый оптимальный вариант

10. KOZZ (05.09.2010 / 11:03)
9, зачем 2 цикла? это уже порнография )))
одним циклом буду делать через readdir, собирать папки и файлы в отд. массивы, потом объединю, и выведу. в общем как azzido написал.

URL: https://visavi.net/topics/13312