Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
IT_Laboratornaya_rabota_8_rnr.doc
Скачиваний:
0
Добавлен:
02.01.2020
Размер:
145.41 Кб
Скачать

1.9.4Функция array_unique()

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

$Arr = array("a"=>"AAA","b"="BBB","с","d","e"="BBB", "d");

$Unique_Arr = array_unique($Arr);

// $Unique_Arr = array("a"=>"AAA","b" = "BBB", "c", "d") ;

1.10Переменные и массивы. Взаимные переходы

1.10.1 Упаковка переменных в массив. Функция compact()

Функция compact() «упаковывает» переменные и их значения в массив. B результате получается ассоциативный массив, ключами которого являются имена переменных, а значениями элементов — значения переменных Рассмотрим сказанное на примере. Предположим, что у нас есть две переменные:

$Name = "Вася";

$Email = "vasya@vvv.org";

Функция compact("Name","Email") упакует переменные в один массив:

$А = compact("Name","Email");

//получаем $А =array("Name"=>"Вася", "Email"=>"vasya@vvv.org");

Параметры функции compact() описаны как mixed, потому что параметры могут быть не только строками, но и списками строк. Если так оно и есть, функция перебирает все элементы этого списка и упаковывает переменные, имена которых она встретила. Вот небольшой пример:

$а = "ААА";

$Ь = "ВВВ";

$с = "ССС";

$Arr = array("b","с");

$Massiv = compact("a",$Arr);

// $Massiv = array("a"=>"AAA","b" = "BBB","c" = "CCC") ;

1.10.2 Разупаковка (извлечение) переменных из массива.

Функция extract () Существует функция, противоположная функции compact() — это функция extract(). Она действует «с точностью до наоборот», то есть создает переменные с именами, соответствующими именам ключей и присваивает им значения элементов массива. Распакуем наш «упакованный массив»:

extract($A);

В процессе распаковки может оказаться, что уже существует переменная с именем, как имя ключа в массиве . Для решения этой проблемы у функции extract() предусмотрен второй параметр, который позволяет определить поведение функции extract() в случае совпадения имен. Значение EXTR_OVERWRITE означает, что существующая переменная с именем ключа будет перезаписана, a EXTR_SKIP — пропущена:

$Name = "Вася";

$Email = "vasya@vvv.org";

$А = compact("Name","Email") ;

$Name = "Ivan";

extract($A,EXTR_OVERWRITE); // $Name = "Ivan", так как мы

//указали EXTR_OVERWRITE

Значение EXTR_OVERWRITE используется по умолчанию и может не указываться. То есть достаточно указать extract($A) и все переменные будут перезаписаны. Кроме того, в PHP предусмотрено еще одно значение второго параметра функции extract() — это значение EXTR_PREFIX_ALL. В этом случае при разупаковке массива все имена создаваемых переменных будут предварены специальным префиксом, который нужно будет указать в качестве третьего параметра функции extract(). Например, если мы в рассмотренном выше примере разупаковку произведем следующим образом:

extract($A,EXTR_PREFIX_ALL, "D_");

то на выходе будут созданы переменные $D_Name и $D_Email, то есть при создании переменных к имени ключа присоединится указанный префикс D_.

1.11Создание диапазона чисел

Иногда нужно создать диапазон чисел, например, для нумерации записей в выводимой таблице. Создать диапазон чисел можно очень просто:

$List = array();

for($i=10; $i<=100; $i++) $List[]=$i;

Данный цикл создает список, заполненный целыми числами от 10 до 100 включительно. В PHP можно обойтись значительно проще — одним вызовом функции range(10, 100).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]