Вставка/удаление элементов

array_pad
Добавляет в массив несколько элементов.

Синтаксис:
array array_pad(array input, int pad_size, mixed pad_value)

Функция array_pad() возвращает копию массива input, в который были добавлены элементы с значениями pad_value, так, что число элементов в получившемся массиве будет равно pad_size.
Если pad_size >0, то элементы будут добавлены справа, а если <0 - то слева.
В случае, если значение pad_size меньше элементов в исходном массиве input, то никакого добавления не произойдет, и функция вернет исходный массив input.

$arr = array(12, 10, 4);$result = array_pad($arr, 5, 0);// $result = array(12, 10, 4, 0, 0);$result = array_pad($arr, -7, -1);// $result = array(-1, -1, -1, -1, 12, 10, 4)$result = array_pad($arr, 2, "noop");// не добавит

array_pop
Извлекает и удаляет последние элементы массива.

Синтаксис:
mixed array_pop(array arr);

Функция array_pop() снимает элемент с "вершины" стека (то есть берет последний элемент списка) и возвращает его, удалив после этого его из arr. С помощью этой функции мы можем строить конструкции, напоминающие стек. Если массив arr был пуст, функция возвращает пустую строку.

$stack = array("orange", "apple", "raspberry");$fruits = array_pop($stack);// $fruit = "raspberry"// $stack = array("orange", "apple")

array_push
Добавляет элементы в конец массива.

Синтаксис:
int array_push(array arr, mixed var1 [, mixed var2,..])

Эта функция добавляет к массиву arr элементы var1,var2 и т.д. Она присваивает им числовые индексы - точно так же, как это происходит для стандартных []. Если вам нужно добавить всего один элемент, наверное, проще будет воспользоваться этим оператором:

array_push($Arr,1000); // вызываем функцию$Arr[]=100;           // то же самое, но короче

Обратите внимание, что функция array_push() воспринимает массив, как стек, и добавляет элементы всегда в его конец.

array_shift
Извлекает и удаляет первый элемент массива.

Синтаксис:
mixed array_shift(array arr)

Эта функция извлекает первый элемент массива arr и возвращает его. Она сильно напоминает array_pop(), но только получает начальный, а не конечный элемент, а также производит довольно сильную "встряску" всего массива: ведь при извлечении первого элемента приходится корректировать все числовые индексы у всех оставшихся элементов, т.к. все последующие элементы массива сдвигаются на одну позицию вперед.

$ar = array("-v", "-f");$opt = array(_shift($arr);// теперь $arr = array("-f"), а $opt = "-v"

array_unshift
Добавляет элементы в начало массива.

Синтаксис:
int array_unshift(list arr, mixed var1 [,mixed var2,...])

Функция очень похожа на array_push, но добавляет перечисленные элементы не в конец, а в начало массива. При этом порядок следования var1, var2 и т.д. остается тем же, т.е. элементы как бы "вдвигаются" в список слева. Новым элементам списка, как обычно, назначаются числовые индексы, начиная с 0; при этом все ключи старых элементов массива, которые также были числовыми, изменяются (чаще всего они увеличиваются на число вставляемых значений). Функция возвращает новый размер массива.

$A = array(10,"a"=>20,30);array_unshift($A,"!","?");// теперь $A===array(0=>"!", 1=>"?", 2=>10, a=>20, 3=>30)

array_unique
Создает массив только из уникальных значений.

Синтаксис:
array array_unique(array arr)

Функция array_unique() возвращает массив, составленный из всех уникальных значений массива arr вместе с их ключами, путем удаления всех дублирующих значений. В результирующий массив помещаются первые встретившиеся пары ключ=>значение. Индексы сохраняются.

$input = array("a" => "green", "red", "b" =>          "green", "blue", "red");$result = array_unique($input);// теперь $result===("a"=>"green", "red", "blue");

 















Переменные и массивы

list
Заносит элементы массива в переменные.

Синтаксис:
list() - языковая конструкция (наподобие array()). Она присваивает перечисленным переменным значения элементов массива, причем первой переменной присваивается первый элемент массива, второй переменной - второй элемент и т.д.

compact
Упаковывает в массив переменные из текущего контекста.

Синтаксис:
array compact(mixed varname1 [, mixed $varname2,...])

Функция compact() упаковывает в массив переменные из текущего контекста (глобального или контекста функции), заданные своими именами в varname1, $varname2 и т.д. При этом в массиве образуются пары с ключами, равными содержимому varnameN, и значениями соответствующих переменных.
Число аргументов может быть неопределенное.
Если в аргументе указано имя несуществующей переменной, он пропускается. Действие этой функции противоположно функции extract().

$a="Test string";$b="Some text";$A=compact("a","b");// теперь $A===array("a"=>"Test string", "b"=>"Some text")

Почему же тогда параметры функции обозначены как mixed? Дело в том, что они могут быть не только строками, но и списками строк. В этом случае функция последнего перебирает все элементы этого списка, и упаковывает те переменные из текущего контекста, имена которых она встретила. Более того - эти списки могут, в свою очередь, также содержать списки строк, и т.д. Правда, последнее используется достаточно редко.

$a="Test";$b="Text";$c="CCC";$d="DDD";$List=array("b",array("c","d"));$A=compact("a",$List);// теперь $A===array("a"=>"Test", "b"=>"Text",           "c"=>"CCC", "d"=>"DDD")

extract
экспорт элементов массива в переменные.

Синтаксис:
void extract(array arr [, int extract_type] [, string prefix])

Эта функция производит действия, прямо противоположные compact(). А именно, она получает в параметрах массив arr и превращает каждую его пару ключ=>значение в переменную текущего контекста.

Параметр extract_type предписывает, что делать, если в текущем контексте уже существует переменная с таким же именем, как очередной ключ в arr. Он может быть равен одной из констант, перечисленных в следующей таблице:

Поведение функции extract в случае совпадения переменных
EXTR_OVERWRITE Переписывать существующую переменную.
EXTR_SKIP Не перезаписывать переменную, если она уже существует.
EXTR_PREFIX_SAME В случае совпадения имен создавать переменную с именем, предваренным префиксом из $prefix.
EXTR_PREFIX_ALL Всегда предварять имена создаваемых переменных префиксом $prefix.

 


По умолчанию подразумевается EXTR_OVERWRITE, т.е. переменные перезаписываются.

// Сделать все переменные окружения глобальнымиextract($HTTP_ENV_VARS);// То же самое, но с префиксом E_extract($HTTP_ENV_VARS, EXTR_PREFIX_ALL, "E_");echo $E_COMSPEC; // Выводит переменную окружения COMSPEC

Параметр prefix имеет смысл указать только тогда, когда вы применяете режимы EXTR_PREFIX_SAME или EXTR_PREFIX_ALL.

 











Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: