Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Введение в СУБД HyTech.doc
Скачиваний:
11
Добавлен:
01.03.2025
Размер:
2.67 Mб
Скачать

Примеры сортировок

Примеры сортировок:

<?php $array_1 = array( 0 => "Сидоров", 1 => "Иванов", 2 => "Петров" ); if( sort( $array_1 ) ) {   // ожидаем, что $array_1 =   //  ( 0 => "Иванов", 1 => "Петров", 2 => "Сидоров" )   ; } rsort($array_1); // после rsort $array_1 =                  // ( 0 => "Сидоров", 1 => "Петров", 2 => "Иванов" ) asort($array_1); // после asort $array_1 =                  // ( 2 => "Иванов", 1 => "Петров", 0 => "Сидоров" ) arsort($array_1); // после arsort $array_1 =                   // ( 0 => "Сидоров", 1 => "Петров", 2 => "Иванов" ) $array_1 = array( 1 => "Сидоров", 2 => "Иванов", 0 => "Петров" ); ksort($array_1);  // после ksort $array_1 =                   // ( 0 => "Петров", 1 => "Сидоров", 2 => "Иванов" ) krsort($array_1); // после krsort $array_1 =                   // ( 2 => "Иванов", 1 => "Сидоров", 0 => "Петров" ) function sort_func1( $par1, $par2 ) {   if( $par1 == "Иванов" )   {     return 1;   }     if( $par1 == $par2 )   {     return 0;   }   elseif( $par1 > $par2 )   {     return 1;   }   else   {     return -1;   } } usort($array_1, "sort_func1" ); // после usort $array_1 = // ( 0 => "Петров", 1 => "Сидоров", 2 => "Иванов" ) function sort_func2( $par1, $par2 ) {   if( $par1 == 1 )   {     return 1;   }     if( $par1 == $par2 )   {     return 0;   }   elseif( $par1 > $par2 )   {     return 1;   }   else   {     return -1;   } } uksort($array_1, "sort_func2" ); // после uksort $array_1 = // ( 0 => "Петров", 2 => "Иванов", 1 => "Сидоров" ) ?>

Итераторы

Итератор, это пользовательская функция, применяемая ко всем элементам массива. Для работы с итераторами в PHP используется встроенная функция array_walk. Функция array_walk возвращает true в случае успешной работы и false в противном случае.

Параметры функции array_walk:

  • Массив, на котором выполняется итератор;

  • Пользовательская функция (итератор);

  • Необязательный параметр: дополнительные данные, передаваемые в итератор.

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

Пример:

<?php $array_1 = array( 0 => "Иванов", 1 => "Петров", 2 => "Сидоров", 3 => 23 ); // итератор будет выводит ключ и значение элемента массива function print_all( $val, $key ) {   echo "Ключ: {$key}, Значение: {$val}"; } // выводим ключ и значение каждого элемента массива array_walk ( $array_1, "print_all" ); ?>

Функции выборки и преобразования массивов

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

Наименование функции

Назначение функции и возвращаемое значение

Параметры

array_keys

Выбрать все ключи в массиве и вернуть их в виде массива. В новом массиве ключи будут значениями, а ключами станут целые числа от 0 до <количества элементов> – 1.

  • Массив;

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

array_unique

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

  • Массив.

array_slice

Вернуть новый массив, содержащий заданные элементы

  • Массив;

  • Номер элемента, начиная с которого следует выделять новый массив (нумерация начинается с 0), если номер >= 0 то выбираем элементы с начала массива, если отрицательный, то с конца;

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