Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
WEB - Лабораторная работа_3 - PHP.pdf
Скачиваний:
90
Добавлен:
26.03.2015
Размер:
232.72 Кб
Скачать

Предположим, что у нас есть список файлов и каталогов — $Files: Нам нужно вывести сначала каталоги, а потом файлы. Сравнение будет изводиться функцией Стр, которую мы сами и напишем (см. листинг Подробнее о создании и использовании пользовательских функций; можете прочитать в гл. 8.

Листинг 1. Функция сравнения Стр

function cmp ($el_l,$el_2)

{

// Сначала каталог, а потом - файл

if (is_dir($el_l) && !is_dir($el_2)) return -1; if ( ! is_dir($el_l) && is_dir($el_2) ) return 1;

// Сравниваем по алфавиту if ($el_K$el_2) return -1;

elseif ($el_l>$el_2) return 1; else return 0;

}

Теперь вызовем функцию uasortQ: uasort ($FilesNDirs,"cmp") ;

Примечание. В данном случае мы используем uasort() потому, что у нас простой список а не ассоциативный массив. В последнем случае нужно было использовать;

функцию uksort()

Функция uasort() аналогична функции uksortQ, только она сортирует не ключи, как uksort, а значения. Обе функции — uksortQ и uasortQ — сохраняют пары ключ=>значение. Функция usortQ похожа на функцию sort(), но критерий сортировки задается пользовательской функцией, которая передается в качестве второго параметра.

Еще одна важная особенность этой функции заключается в том, что она не сохраняет пару ключ=>значение, поэтому пригодна лишь для сортировки списков, но ее ни в коем случае не нужно использовать для сортировки ассоциативных массивов.

7. Получение части массива

Для получения части массива используется функция array_slice(). Ей нужно передать три параметра:

*имя исходного массива, из которого будут выбираться элементы;

*смещение от начала массива, то есть сколько элементов от начала массива надо пропустить перед началом выборки;

*длина, то есть количество элементов, которое нужно выбрать из исходного

массива.

Данная функция возвращает часть указанного массива, начиная с указанного смещения от начала массива. Выборка элементов осуществляется подряд. Длина результирующего массива задается параметром Длина, который является необязательным. Если этот параметр не указан, то" выборка элементов осуществляется до конца исходного массива.

Вот небольшие примеры:

$А = array(xox, ror, tot, pop, mom); // задаем исходный массив $В = array_slice($А,2); // получаем массив $В,

//в котором содержатся

//все элементы массива $А,

//начиная с третьей позиции

//(т.к. два надо пропустить).

//Таким образом, массив $В

//будет содержать элементы

//tot, pop, mom.

$В = array_slice($A, 0,2) ; // Получаем массив $В, в котором

//содержатся два элемента

//массива $А, начиная с первого

//(т.к. надо пропустить О

//элементов) . Таким образом,

Соседние файлы в предмете Программирование для Web