Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
php учебник_весь.doc
Скачиваний:
8
Добавлен:
21.09.2019
Размер:
2.06 Mб
Скачать

Функция count()

Синтаксис:

int count(mixed var)

Эта функция принимает в качестве аргумента массив и возвращает количество элементов в нем. Как понимаете, штука незаменимая когда будем бегать по массиву циклом for().

Функция in_array()

Синтаксис:

boolean in_array(mixed needle, array haystack [, bool strict])

Эта функция ищет в массиве haystack значение needle и возвращает true если оно найдено и false в противном случае.

Функция reset()

Синтаксис:

mixed reset(array array)

Функция reset() устанавливает указатель массива на первый элемент и возвращает значение первого элемента массива.

Небольшое замечание. У каждого массива в PHP есть внутренний указатель на текущий элемент массива. При работе с такими конструкциями как foreach не надо думать об указателе, поскольку foreach устанавливает его в начало массива. Однако, многие другие функции массивов, такие как prev(), next(), занимаются перемещением указателя массива, что может иметь значение при работе с такими функциями, как array_walk(), которые начинают обработку массива с того места, где находится указатель.

Ну а теперь вплотную займемся сортировками.

Функции сортировки массивов

sort()  rsort()  asort() 

arsort()  ksort()  krsort() 

array_reverse()  shuffle()  natsort() 

sort()

Функция сортировки массива по возрастанию.

Синтаксис:

void sort(array array [, int sort_flags])

Функция сортирует массив array по возрастанию. Необязательный аргумент sort_flags указывает как именно должны сортироваться элементы (задает флаги сортировки). Допустимыми значениями этого аргумента являются следующие:

  • SORT_REGULAR – задает нормальное сравнение элементов (сравнивает элементы "как есть")

  • SORT_NUMERIC - сравнивает элементы как числа

  • SORT_STRING - сравнивает элементы как строки

Вообще говоря, эта функция предназначена для сортировки списков. Под списком понимается массив, ключи которого начинаются с нуля и не имеют пропусков. Функция sort() воспринимает любой массив как список.

Рассмотрим примерчик.

Пример:

<?

$arr = array("2", "1", "4", "3","5");

sort($arr);

for($i=0; $i < count($arr); $i++)

{

echo ("$i:$arr[$i] ");

}

// выводит "0:1 1:2 2:3 3:4 4:5"

?>

Результат:

0:1 1:2 2:3 3:4 4:5

Заметим такую вещь. Если вы сортируете строки, т.е, к примеру, массив выглядит вот так

array("one", "two", "abs", "three", "uic", "for","five");

то эта чудо-функция вернет вам следующее:

Результат:

0:abs 1:five 2:for 3:one 4:three 5:two 6:uic

Т.е. строки она сортирует в так называемом альфа-бета порядке, попросту говоря – по старшинству первой буквы в алфавите.

rsort()

Сортировка массива по убыванию.

Синтаксис:

void rsort(array arr [, int sort_flags])

Аналогична функции sort(), только сортирует по убыванию. Выполним тот же скрипт, что и для функции sort(), только вместо sort($arr) поставим rsort($arr).

Результат:

0:5 1:4 2:3 3:2 4:1

asort()

Сортировка ассоциативного массива по возрастанию.

Синтаксис:

void asort(array arr [, int sort_flags])

Функция asort() сортирует массив arr так, чтобы его значения шли в алфавитном (если это строки) или возрастающем (для чисел) порядке. Важное отличие этой функции от функции sort() состоит в том, что при применении функцииasort()сохраняются связи между ключами и соответствующими им значениями, чего нет в функции sort() (там эти связи попросту разрываются).

Пример:

<?

$arr = array("a" =>"one","b" => "two","c" => "three","d" => "four");

asort($arr);

foreach($arr as $key => $val)

{

echo (" $key => $val ");

}

?>

Результат:

d => four a => one c => three b => two

Т.е., как видим, связи "ключ-значение" сохранились.

По умолчанию функция asort() сортирует массив в алфавитном порядке. Значения флагов сортировки sort_flagsприведены в описании функции sort().

arsort()

Сортировка ассоциативного массива по убыванию.

Синтаксис:

void arsort(array arr [, int sort_flags])

Эта функция аналогична функции asort(), только она упорядочивает массив не по возрастанию, а по убыванию.

ksort()

Сортировка массива по возрастанию ключей.

Синтаксис:

int ksort(array arr [, int sort_flags])

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

<?

$arr = array("a" =>"one","b" => "two","c" => "three","d" => "four");

ksort($arr);

foreach($arr as $key => $val)

{

echo (" $key => $val ");

}

?>

Результат:

a => one b => two c => three d => four

krsort()

Сортировка массива по убыванию индексов.

Синтаксис:

int krsort(array arr [, int sort_flags])

То же самое, что и функция ksort(), только упорядочивает массив по ключам в обратном порядке (по убыванию).

array_reverse()

Расстановка элементов массива в обратном порядке.

Синтаксис:

array array_reverse(array arr [, bool preserve_keys])

Функция array_reverse() возвращает массив, элементы которого следуют в обратном порядке относительно массива arr, переданного в параметре. При этом связи между ключами и значениями сохраняются. Можно еще необязательный параметрpreserve_keys сделать true, тогда в обратном порядке переставятся еще и ключи.

Своруем идейку примерчика на эту функцию из php-шного мануала:

<?

$arr = array ("php", 4.0, array ("green", "red"));

$result = array_reverse ($arr);

echo "Массив: <br>";

foreach($result as $key => $val)

{

echo ("$key => $val <br>");

}

echo("<br>");

echo "Сортированный массив: <br>";

$result_keyed = array_reverse ($arr, false);

foreach($result_keyed as $key => $val)

{

echo ("$key => $val<br> ");

}

?>

Т.е., что получилось:

В первом случае:

Результат:

Массив:  0 =>Array  1 =>4  2 =>php  Сортированный массив:  0 =>Array  1 =>4  2 =>php 

А если еще и второй параметр как true засобачить, то вот что выйдет:

Результат:

Массив:  0 =>Array  1 =>4  2 =>php  Сортированный массив:  2 =>Array  1 =>4  0 =>php 

shuffle()

Перемешивание элементов массива случайным образом.

Синтаксис:

void shuffle(array arr)

Функция shuffle() перемешивает элементы масиива arr случайным образом.

natsort()

Выполняет "естественную" сортировку массива.

Синтаксис:

void natsort(array arr)

С такой сортировкой мы уже встречались, когда работали со строками. Поработаем с ней еще разок. Как помните, под естественной сортировкой понимается сортировка таким образом, когда элементы того, что сортируется располагаются в "понятном" для человека порядке.

Пример:

<?

$array1 = $array2 = array("pict10.gif", "pict2.gif", "pict20.gif", "pict1.gif");

echo ("обычная сортировка:"); echo ("<br>");

sort($array1);

print_r($array1);

echo ("<br>"); echo ("естественная сортировка:"); echo ("<br>");

natsort($array2);

print_r($array2);

?>

Результат:

обычная сортировка: Array ( [0] => pict1.gif [1] => pict10.gif [2] => pict2.gif [3] => pict20.gif )  естественная сортировка: Array ( [3] => pict1.gif [1] => pict2.gif [0] => pict10.gif [2] => pict20.gif )

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]