- •Содержание:
- •Математические функции : Функции округления
- •Математические функции : Случайные числа
- •Математические функции : Минимум и максимум
- •Математические функции : Степенные функции
- •Математические функции : Тригонометрия
- •Математические функции : Функции повышенной точности BCMath
- •Математические функции : Функции GMP. Арифметика
- •Математические функции : Функции GMP. Математика
- •Математические функции : Функции GMP
- •Математические функции : Функции GMP. Значения функции GMP
- •Математические функции : Функции GMP. Бинарные операции
- •Работа с массивами : Создание массива
- •Работа с массивами : Сортировка массивов
- •Работа с массивами : Курсор массива
- •Работа с массивами : Ключи и значения
- •Работа с массивами : Комплексная замена в строке
- •Работа с массивами : Работа с несколькими массивами
- •Работа с массивами : Получение и удаление части массива
- •Работа с массивами : Вставка/удаление элементов
- •Работа с массивами : Переменные и массивы
- •Строковые функции : Функции отрезания пробелов
- •Строковые функции : Поиск в тексте
- •Строковые функции : Функции сравнения
- •Строковые функции : Форматирование и вывод строк
- •Строковые функции : Составление/разбиение строк
- •Строковые функции : Работа с блоками текста
- •Строковые функции : Функции для преобразования символов
- •Строковые функции : Функции изменения регистра
- •Строковые функции : Установка локали (локальных настроек)
- •Строковые функции : Преобразование кодировок
- •Строковые функции : Функции форматных преобразований
- •Строковые функции : Функции URL
- •Строковые функции : Работа с бинарными данными
- •Строковые функции : Строковые суммы и хеш-функции
- •Символические ссылки. Жесткие ссылки
- •Функции даты и времени
- •Логические функции определения типа переменной
- •Функции переменных
- •Функции для работы с функциями
- •Календарные функции
- •Работа с файлами : Открытие файла
- •Работа с файлами : Закрытие файла
- •Работа с файлами : Чтение и запись
- •Работа с файлами : Положение указателя текущей позиции
- •Работа с файлами : Функции для определения типов файлов
- •Работа с файлами : Определение параметров файла
- •Работа с файлами : Функции для работы с именами файлов
- •Работа с файлами : Функции манипулирования целыми файлами
- •Работа с файлами : Другие функции
- •Функции для работы с каталогами : Манипулирование каталогами
- •Функции для работы с каталогами : Работа с записями
- •FTP : Работа с FTP-сервером
- •FTP : Работа файлами
- •Функции IMAP
- •Функции SNMP
- •Функции Vmailmgr
- •Сетевые функции
- •Отслеживание и обработка ошибок : Введение
- •Отслеживание и обработка ошибок : Функции обработки ошибок
- •Управление сессиями : Имя группы сессии
- •Управление сессиями : Идентификатор сессии
- •Управление сессиями : Другие функции
- •Управление сессиями : Обзор обработчиков
- •Управление сессиями : Про сессии и Cookies
- •Работа с WWW : Установка заголовков ответа
- •Работа с WWW : Получение заголовков запроса
- •Работа с WWW : Работа с Cookies
- •Работа с WWW : SSI и функция virtual()
- •Управление выводом : Введение
- •Управление выводом : Функции управления выводом
- •Управление исполнением сценария PHP : Дополнительные функции
- •Почтовые функции
- •Функции запуска программ
- •Функции динамической загрузки
- •Информационные функции
- •База данных MySQL : Работа с базами данных
- •Базы данных MySQL : Обработка результатов запроса
- •PDF-документы : Введение
- •PDF-документы : Открытие документа
- •PDF-документы : Работа с текстом
- •PDF-документы : Установка масштаба и системы координат
- •PDF-документы : Черчение и заполнение фигур
- •PDF-документы : Размещение рисунков
- •PDF-документы : Стиль документа
gmp_hamdist
Вычисление дистанции.
Синтаксис :
int gmp_hamdist(resource x, resource y)
Функция возвращает дистанцию между числами x и y. Аргументы x и y должны быть неотрицательными.
Математические функции : Функции GMP. Бинарные операции
gmp_and
Логическое И (AND).
Синтаксис :
resource gmp_and(resource x, resource y)
gmp_or
Логическое ИЛИ (OR).
Синтаксис :
resource gmp_or(resource x, resource y)
gmp_xor
Логическое исключающее-ИЛИ (XOR).
Синтаксис :
resource gmp_xor(resource x, resource y)
gmp_setbin
Установка бита.
Синтаксис :
resource gmp_setbin(resource &x, int index [, bool set_clear])
Устанавливает бит в позиции index в числе x. Аргумент set_clear указывает, в какое значение устанавливать бит: 0 или 1 (по умолчанию).
gmp_clrbit
Производит сброс бита.
Синтаксис :
resource gmp_clrbit(resource &x, int index)
Устанавливает бит в позиции index в числе x в значение 0.
gmp_scan0
Производит поиск бита 0.
Синтаксис :
0int gmp_scan0(resource x, int start)
Функция gmp_scan0() ищет в числе x бит 0, начиная с позиции start, в сторону увеличения значимости разрядов. Возвращает позицию найденного бита.
gmp_scan1
Производит поиск бита 1.
Синтаксис :
1int gmp_scan1(resource x, int start)
Функция gmp_scan0() ищет в числе x бит 1, начиная с позиции start, в сторону увеличения значимости разрядов. Возвращает позицию найденного бита.
Работа с массивами : Создание массива
array
Создание и инициализация массива.
Синтаксис :
array array([mixed ...])
Функция возвращает созданный массив. Индексы и значения в массиве разделяются оператором =>. Пары index=>value разделяются запятыми, они определяют индекс и значение.
Индекс может быть как числовым, так и строковым. В ассоциированных массивах индекс всегда ведет себя как строковой. В случае, если индекс не указан, будет подставляться автоинкремент (на 1 больше), начиная с 0. Если при создании массива были указаны два элемента с одинаковыми индексами, то последний элемент заменяет первый.
$arr=array( // Далее мы создадим двумерный массив
"fruit" => array("a"=>"orange", "b"=>"banan", "c"=>"apple"),
//эта запись эквивалентна записи: $arr["fruit"]["a"]="orange"; и т.д. "number" => array(1,2,3,4,5,6),
//эта запись эквивалентна записи: $arr["number"][]=1; и т.д.
"hotel" => array("first", 5=>"second", "third") );
$arr=array(1, 1, 1, 1, 2=>5, 19, 3=>20); print_r($arr);
// Далее распечатка этого массива
Array
(
[0]=> 1
[1]=> 1
[2]=> 5
[3]=> 20
[4]=> 19
)
$arr=array(1 => "Январь", "Февраль", "Март"); print_r($arr);
// распечатка
Array
(
[1]=> Январь
[2]=> Февраль
[3]=> Март
)
range
Заполняет список целыми числами.
Синтаксис :
list range(int low, int high)
Функция range() создает список, заполненный целыми числами от low до high включительно. Ее удобно применять, если мы хотим быстро сгенерировать массив для последующего прохождения по нему циклом forech.
$arr=range(4,9);
// теперь $arr = array(4, 5, 6, 7, 8, 9);
Работа с массивами : Сортировка массивов
array_reverse
Расстановка элементов массива в обратном порядке.
Синтаксис :
array array_reverse(array arr);
Функция array_reverse() возвращает массив, элементы которого следуют в обратном порядке относительно массива, переданного в параметре. При этом связи между ключами и значениями, конечно, не теряются. Например, вместо того, чтобы ранжировать массив в обратном порядке при помощи arsort(), мы можем отсортировать его в прямом порядке, а затем перевернуть:
$A=array("a"=>"Zero","b"=>"Weapon","c"=>"Alpha","d"=>"Processor");
asort($A);
$A = array_reverse($A);
shuffle
Перемешивание элементов массива.
Синтаксис:
void shuffle(array arr);
Функция shuffle() "перемешивает" список, переданный ей первым параметром arr, так, чтобы его значения распределялись случайным образом. При этом измениться сам массив и ассоциативные массивы воспринимаются как списки.
$A = array(10,20,30,40,50); shuffle($A);
foreach($A as $v) echo "$v ";
// Выведет 10,20,30,40,50 в случайном порядке
sort
Сортировка массива по возрастанию.
Синтаксис:
void sort(array arr [, int sort_flags])
Эта функция предназначена для сортировки списков (списки - массивы, ключи которых начинаются с 0 и не имеют пропусков) в порядке возрастания.
$A = array("One", "Two", "Tree", "Four"); sort($A);
for($i=0; $i<count($A); $i++) echo "$i:$A[$i] "; // выводит "0:Four 1:Two 2:Tree 3:One"
Любой ассоциативный массив Воспринимается этой функцией как список. То есть после упорядочивания последовательность ключей превращается в 0,1,2,..., а значения нужным образом перераспределяются. Как видим, связи между параметрами ключ=>значение не сохраняются, более того - ключи просто
пропадают, поэтому сортировать что-либо, отличное от списка, вряд ли целесообразно.
Аргумент sort_flags задает следующие флаги сортировки:
•SORT_REGULAR - сравнивает элементы "как есть"
•SORT_NUMERIC - сравнивает элементы как числа
•SORT_STRING - сравнивает элементы как строки
rsort
Сортировка массива по убыванию.
Синтаксис:
void rsort(array arr [, int sort_flags])
Аналогична функции sort(), только сортирует по убыванию.
asort
Сортировка ассоциативного массива по возрастанию.
Синтаксис :
void asort(array arr [, int sort_flags]);
Функция asort() сортирует массив, указанный в ее параметре, так, чтобы его значения шли в алфавитном (если это строки) или возрастающем (для чисел) порядке. При этом сохраняются связи между ключами и соответствующими им значениями, т.е. некоторые пары ключ=>значение просто "всплывают" наверх, а некоторые - наоборот, "опускаются".
$A=array("a"=>"Zero","b"=>"Weapon","c"=>"Alpha","d"=>"Processor"); asort($A);
foreach($A as $k=>$v) echo "$k=>$v ";
//выводит "c=>Alpha d=>Processor b=>Weapon a=>Zero"
//как видим, поменялся только порядок пар ключ=>значение
По умолчанию функция asort() сортирует массив в алфавитном порядке. Значения флагов сортировки sort_flags приведены в описании функции sort().
arsort
Сортировка ассоциативного массива по убыванию.
Синтаксис :
void arsort(array arr [, int sort_flags]);
Эта функция аналогична функции asort(), только она упорядочивает массив не по возрастанию, а по убыванию.
$arr=array("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple"); arsort($arr);
reset($arr);
while(list ($key, $val) = each ($arr)) { echo "$key = $val<BR>l";
}
// выведет: a = orange d = lemon b = banana c = apple
ksort
Сортировка массива по возрастанию ключей.
Синтаксис :
int ksort(array arr [, int sort_flags]);
Функция практически идентична функции asort(), с тем различием, что сортировка осуществляется не по значениям, а по ключам (в порядке возрастания).
$A=array("d"=>"Zero","c"=>"Weapon","b"=>"Alpha","a"=>"Processor"); ksort($A);
for(Reset($A); list($k,$v)=each($A);) echo "$k=>$v "; // выводит "a=>Processor b=>Alpha c=>Weapon d=>Zero"
Аргумент sort_flags указывавет параметры сортировки.
krsort
Сортировка массива по убыванию индексов.
Синтаксис :
int krsort(array arr [, int sort_flags]);
Эта функция аналогична функции ksort(), только она упорядочивает массив по ключам в обратном порядке.
natsort
Выполняет "естественную" сортировку массива.
Синтаксис :
void natsort(array arr);
Функция natsort() сортирует массив в "естественном" для человека порядке.
$arr1 = array("html_12.html", "html_10.html", "html_2.html", "html_1.html"); $arr2 = $arr1;
sort($arr1);
echo "Стандартная сортировка:\n"; print_r($arr1);
natsort($arr2);
echo "Естественная сортировка:\n" print_r($arr2);
Этот пример выведет следующее:
Стандартная сортировка: Array
(
[0]=> html_1.html
[1]=> html_10.html
[2]=> html_12.html
[3]=> html_2.html
)
Естественная сортировка: Array
(
[3] => html_1.html [2] => html_2.html [1] => html_10.html [0] => html_12.html
)
uasort
Пользовательская сортировка ассоциативного массива.
Синтаксис:
void uasort(array arr, function cmp_function)
Функция uasort() сортирует массив arr с сохранением индексных ассоциаций, используя для сравнения индексов элементов пользовательскую функцию, указанную аргументом cmp_function.
uksort
Пользовательская сортировка массива по ключам.
Синтаксис:
void uksort(array arr, function cmp_function)
Функция uksort() сортирует массив arr по индексам с сохранением индексных ассоциаций, используя для сравнения индексов элементов пользовательскую функцию, указанную в аргументе cmp_function. В эту функцию передаются два сравниваемых индекса элементов, а она должна вернуть положительное или отрицательное число или 0.
Довольно часто нам приходится сортировать что-то по более сложному критерию, чем просто по алфавиту. Например, пусть в $Files храниться список имен файлов и подкаталогов в текущем каталоге. Возможно, мы захотим вывести этот список не только в лексографическом порядке, но также чтобы все каталоги предшествовали файлам. В этом случае нам стоит воспользоваться функцией uksort(), написав предварительно функцию сравнения с двумя параметрами, как того требует uksort().
//Эта функция должна сравнивать значения $f1 и $f2 и возвращать:
//-1, если $f1<$f2,
//0, если $f1==$f2
//1, если $f1>$f2
//Под < и > понимаем следование этих имен в выводимом списке function FCmp($f1,$f2)
{ // Каталог всегда предшествует файлу if(is_dir($f1) && !is_dir($f2)) return -1;
//Файл всегда идет после каталога
if(!is_dir($f1) && is_dir($f2)) return 1; // Иначе сравниваем лексиграфически
if($f1<$f2) return -1; elseif($f1>$f2) return 1; else return 0;
}
//Пусть $Files содержит массив с ключами - именами файлов
//в текущем каталоге. Отсортируем его.
uksort($Files,"FCmp"); //передаем функцию сортировки "по ссылке"
usort
Пользоваетльская сортировка массива.
Синтаксис:
void usort(array arr, function cmp_function)
Функция usort() сортирует массив arr с сохранением индексных ассоциаций, используя для сравнения индексов элементов пользовательскую функцию, указанную в аргументе cmp_function. В эту функцию передаются два сравниваемых индекса элементов, а она должна вернуть положительное или отрицательное число или 0.
Эта функция как бы является "гибридом" функций uasort() и sort(). От sort() она отличается тем, что критерий сравнения обеспечивается пользовательской функцией. А от uasort() - тем, что она не сохраняет связей между ключами и значениями, а потому пригодна разве что для сортировки списков.
function FCmp($a,$b) { return strcmp($a,$b); } $A = array("One","Two","Three","Four");
usort($A);
for($i=0; $i<count($A); $i++) echo "$i:$A[$i] "; // выводит "0:Four 1:One 2:Three 3:Two"
Пример одномерного массива:
function cmp($a, $b) { if($a==$b) return 0; return ($a > $b) ? -1 : 1;
}
$a=array (3,2,5,6,1); usort($a, "cmp");
while(list($key,$val)=each($a)) { echo "$key: $val\n";
}
При выполнении будет напечатано:
0:6
1:5
2:3
3:2
4:1
Пример многомерного массива:
function cmp($a,$b) {
return strcmp($a["fruit"],$b["fruit"]); };
$fruit[0]["fruit"]="lemons"; $fruit[1]["fruit"]="apples"; $fruit[2]["fruit"]="grapes";
usort($fruit, "cmp");
while(list($key,$val)=each($fruit)) {
echo "\$fruit[$key]:".$val["fruit"]."\n";
}
При сортировке многомерных массивов $a и $b содержит ссылки на первый индекс массива.
Будет напечатано:
$fruit[0]: apples $fruit[1]: grapes $fruit[2]: lemons
array_multisort
Сортировка релятивных массивов.
Синтаксис:
bool array_multisort(array ar1, [, mixed o1 [, mixed t1 ... [, array ...]]])
Функция array_multisort() сортирует многомерные массивы с сохранением индексной ассоциации, возвращая true при отсутствии ошибок.
Исходные массивы рассматриваются как столбцы таблицы, сортируемой построчно. Поэтому массивы должны иметь одинаковое число элементов, и взаимосвязь между ними, как в строках таблицы, сохраняется. Приоритетом сортировки пользуются первые массивы. Флаги сортировки могут указваться для каждого массива, и их действие распространяется только на тот массив, после которого они указаны.
Флаги определения порядка сортировки (аргументы ox):
•SORT_ASC - сортировка в порядке возрастания (по умолчанию)
•SORT_DESC - сортировка в порядке убывания Флаги типа сортировки (аргументы tx):
•SORT_REGULAR - сравнивать элементы как есть (по умолчанию)
