Привет, Гость!
home login register
[+] Купить Рекламу
Хостинг для тебя! Заходи не пожалеешь
Что мы делаем полезного на официальном сайте WAP-поддержки? Подробно ...
Вступайте в нашу группу ВКОНТАКТЕ
Поздравляем, новичка с ID:1000
Как самомусделать QR-код
IT новости: в Windows новая опасная уязвимость
Проблемы восприятия IT
Как подтвердить авторство в Google

Учебник PHP #5
<< 1 ... 3 4 5 6 7 >>
int count (mixed переменная)

Единственное различие между sizeof ( ) и count( ) заключается в том, что в некоторых ситуациях count ( ) возвращает дополнительную информацию:

если переменная существует и является массивом, count ( ) возвращает количество элементов в массиве;
если переменная существует, но не является массивом, функция возвращает значение 1;
если переменная не существует, возвращается значение 0.

array_count_values( )

Функция array_count_values( ) является разновидностью sizeof ( ) и count ( ). Вместо общего количества элементов она подсчитывает количество экземпляров каждого значения в массиве. Синтаксис функции array_count_values( ):

array array_count_values(array массив):

В возвращаемом массиве ключами будут значения исходного массива, а значениями — их частоты:

$states = аrrау("ОН", "ОК", "СА", "РА", "ОН", "ОН", "РА", "АК");

$state_freq = array_count_values($states);

Массив $state_freq заполняется следующими ассоциативными парами «ключ/значение»:

$state_freq = аrrау("ОН" => 3, "ОК" => 1, "СА" => 1, "РА" => 2, "АК" => 1);

Сортировка массивов

Сортировка занимает важное место в программировании и часто встречается на практике в таких Интернет-приложениях, как коммерческие сайты (сортировка категорий товаров в алфавитном порядке, сортировка цен) или поисковые системы (сортировка программ по количеству загрузок). В РНР существует девять стандартных функций сортировки (табл. 5.1), причем каждая функция сортирует массив особым образом.

Таблица 5.1. Функции сортировки

Функция


Сортировка


Обратный порядок


Сохранение пар «ключ/значение»

sort


Значение


Нет


Нет

rsort


Значение


Да


Нет

asort


Значение


Нет


Да

arsort


Значение


Да


Да

ksort


Ключ


Нет


Да

krsort


Ключ


Да


Да

usort


Значение


?


Нет

uasort


Значение


?


Да

uksort


Ключ


?


Да

? относится к применению пользовательских функций сортировки, когда порядок сортировки массива зависит от результатов, возвращаемых пользовательской функцией.

Сортировка элементов массива не ограничивается стандартными критериями, поскольку три функции (usort(), uasort( ) и uksort( )) позволяют задать пользовательский критерий и отсортировать информацию произвольным образом.

sort( )

Простейшая функция sort( ) сортирует элементы массива по возрастанию (от меньших к большим). Синтаксис функции sort ( ):

void sort (array массив)

Нечисловые элементы сортируются в алфавитном порядке в соответствии с ASCII-кодами. Следующий пример демонстрирует применение функции sort( ) при сортировке:

// Создать массив городов.

$cities = array("Aprilia", "Nettuno", "Roma", "Venezia", "Anzio");

// Отсортировать города по возрастанию

sort($cities);

// Перебрать содержимое массива и вывести все пары "ключ/значение".

for (reset($cities); $key = key ($cities); next ($cities)):

print("cities[$key] = $cities[$key] <br>";

endfor;

Этот фрагмент выводит следующий результат:

cities[0] = Anzio

cities[1] = Aprilia

cities[2] = Nettuno

cities[3] = Roma

cities[4] = Venezia

Как видите, массив $cities сортируется в алфавитном порядке. Одна из разновидностей этого способа сортировки реализована в функции asort( ), описанной ниже.

rsort( )

Функция rsort ( ) работает точно так же, как функция sort ( ), за одним исключением: элементы массива сортируются в обратном порядке. Синтаксис функции rsort ( ):

void rsort (array массив)

Вернемся к массиву $cities из предыдущего примера:

$cities array("Aprilia", "Nettuno", "Roma", "Venezia", "Anzio");

rsort($cities);

В результате сортировки массива $cities функцией rsort( ) элементы будут расположены в следующем порядке:

cities[0] = Venezia

cities[1] = Roma

cities[2] = Nettuno

cities[3] = Aprilia

cities[4] = Anzio

Массив $cities также сортируется, но на этот раз в порядке, обратном алфавитному. Одна из разновидностей этого способа сортировки реализована в функции arsort( ), описанной ниже.

asort( )

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

void asort(array массив)

Вернемся к массиву $cities:

$cities = array("Aprilia", "Nettuno", "Roma", "Venezia", "Anzio");

asort($cities):

В результате сортировки массива $cities функцией rsort() элементы будут расположены в следующем порядке:

cities[4] = Anzio

cities[0] = Aprilia

cities[1] = Nettuno

cities[2] = Roma

cities[3] = Venezia

Обратите внимание на индексы и сравните их с приведенными в описании функции sort ( ). Именно в этом и состоит различие между двумя функциями.

arsort( )

Функция arsort ( ) представляет собой разновидность asort( ), которая сохраняет исходную ассоциацию индексов, но сортирует элементы в обратном порядке. Синтаксис функции arsort( ):

void arsort (array массив)

Воспользуемся функцией arsort( ) для сортировки массива $cities:

$cities = array("Aprilia", "Nettuno", "Roma", "Venezia", "Anzio");

arsort($cities);

В результате сортировки элементы будут расположены в следующем порядке:

cities[3] = Venezia

cities[2] = Roma

cities[l] = Nettuno

cities[0] = Aprilia

cities[4] = Anzio

Обратите внимание на индексы и сравните их с приведенными в описании функции rsort( ). Именно в этом и состоит различие между двумя функциями.

ksort( )

Функция ksort( ) сортирует массив по ключам, сохраняя исходные ассоциации ключей со значениями. Синтаксис функции ksort( ):

void ksort (array массив)

Для примера рассмотрим массив, слегка отличающийся от исходного массива

$cities:

$wine_producers = array ("America" => "Napa Valley",

"Italy" => "Tuscany",

"Australia" => "Ruthgerlen",

"France" => "Loire",

"Chile" => "Rapel Valley");

В результате сортировки массива функцией ksort( ) элементы будут расположены в следующем порядке:

"America" => "Napa Valley"

"Australia" => "Ruthgerlen"

"Chile" => "Rapel Valley"

"France" => "Loire"

"Italy" => "Tuscany"

Сравните с результатами сортировки $wine_producers функцией sort ( ):

"America" => "Napa Valley"

"Australia" => "Tuscany"

"Chile" => "Ruthgerlen"

"France" => "Loire"

"Italy" => "Rapel Valley"

Более чем сомнительный результат!

krsort( )

Функция krsort( ) почти аналогична ksort( ), однако ключи сортируются в обратном порядке. Синтаксис функции krsort( ):

void krsort (array $массив)

Рассмотрим сортировку массива $wi reproducers функцией krsort( ):

$wine_producers = array ("America" => "Napa Valley",

"Italy" => "Tuscany",

"Australia" => "Ruthgerlen",

"France" => "Loire".

"Chile" => "Rapel Valley");

krsort($wine_producers);

В результате сортировки элементы будут расположены в следующем
Комментарии (0)
<< 1 ... 3 4 5 6 7 >>
Скачать Java книгу

»php/mysql/pdo/js
В библиотеку

На главную

Сообщество wap разработчиков I HwapCMS официальный сайт поддержки


RSS-лента
Генерация: 0.0119 сек.