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

Пример 3‑41

<?php

$arr = array ("яблоки","апельсины", "бананы",абрикосы);

$kolelem = count($arr);//считаем число элементов в массиве

echo "Исходное число элементов = $kolelem <br>";

unset ($arr[0]);//Удаляется второй элемент массива

$kolelem = count($arr);

echo "Число элементов после удаления одного элемента = $kolelem <br>";

for($index = 0; $index <= $kolelem; $index++)

echo "Индекс = $index,Текущий фрукт: $arr[$index] <br>";

//----------------------------------------------------------

$arr[2]= "";

// $kolelem = count($arr);

//Вторая функция, считающая число элементов в массиве sizeof

$kolelem = sizeof($arr);

echo "Число элементов после вставки пустой строки = $kolelem <br>";

//echo "$kolelem <br>";

for($index = 0; $index <= $kolelem; $index++)

echo "Индекс = $index,Текущий фрукт: $arr[$index] <br>";

//----------------------------------------------------------

//Проверка того, какой элемент исключён из массива

foreach ($arr as $value)

{

echo "Текущий фрукт: $value <br>";

}

?>

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

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

Процесс сортировки нескольких данных заключается в расположении их в определённом порядке (либо по возрастанию, либо по убыванию) и попарном их сравнении.

Сравнение целых чисел по величине очевидно. Сравнение строк более сложно. Необходимо помнить, что каждому символу соответствует двоичный код, соответствующий порядку расположения символов в алфавите – по возрастанию. Поэтому d < g< ж.

Прежде, чем перейти к рассмотрению возможностей сортировки, вспомним, что массив – это совокупность пар «ключ-значение», объединённая одним именем. Сортировать можно:

  • по значениям - по убыванию или возрастанию,

  • по ключам - по убыванию или возрастанию.

Сложности могут возникнуть, если вспомнить, что в PHP возможны массивы, элементы в которых могут быть смешанными как по ключам (у части значений - целые числа, у части – строками), так и по значениям (часть значений массива – числа, часть – строки).

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

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

По убыванию значений элементов сортирует функция rsort().

Если эти функции применить к массивам c целочисленными индексами, то всё работает.

Если массив будет ассоциативный (индексы в виде строк), то при использовании вышеуказанных функций произойдёт преобразование строковых индексов в числа, и информация о строковых индексах будет потеряна.

В этом случае для корректной работы надо воспользоваться функциями asort() и arsort()

Пример 3‑42 - сортировка массивов

<?php

//Сортировка массива - списка

$arr = array ("яблоки","апельсины", "бананы",абрикосы);

echo "Исходный массив <br>";

print_r ($arr);

echo "<br>";

sort($arr);

echo "Отсортированный по возрастанию значений массив <br>";

print_r ($arr);

echo "<br>";

echo "Отсортированный по убыванию ключа массив <br>";

krsort($arr);

print_r ($arr);

echo "<br>";

echo "Работаем с ассоциированным массивом";

echo "<br>";

$cvetfrukt ["красный"]="яблоко";

$cvetfrukt ["зелёный"]= "груша";

$cvetfrukt ["оранжевый"]= "апельсин";

$cvetfrukt ["жёлтый"]= "абрикос";

echo "Исходный массив <br>";

print_r($cvetfrukt);

echo "<br>";

asort($cvetfrukt);

echo "Отсортированный по возрастанию значений массив <br>";

print_r($cvetfrukt);

echo "<br>";

ksort($cvetfrukt);

echo "Отсортированный по возрастанию ключа массив <br>";

print_r($cvetfrukt);

echo "<br>";

?>

Функции сортировки представлены в таблице Таблица 3 -11.

Отметим функции natsort и usort.

Естественным порядком называется такой порядок сортировки, при котором цифровые последовательности, входящие в состав строк, рассматриваются как числа. При «обычном» методе сортировки цифры рассматриваются как символы.

Для более чёткого понимания особенностей обычной и естественной сортировок, самостоятельно проверьте результаты сортировок на массивах: