Привет, Гость!
Учебник PHP #5
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);
В результате сортировки элементы будут расположены в следующем
Единственное различие между 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)
Скачать Java книгу»php/mysql/pdo/js
В библиотеку