Справочник по PHP : Функции работы с данными : Работа с массивами : Вставка / удаление элементов

смотрим также

Материал из Справочник Web-языков

Версия от 15:24, 26 апреля 2011; Evgen (Обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск


Содержание

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.

Пример использования функции array_pad():

$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");
// не добавит

Функция поддерживается PHP 4, PHP 5

array_pop

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

Синтаксис:

mixed array_pop(array arr);

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

После использования функции array_pop() курсор массива устанавливается в начало.

Пример использования функции array_pop():

<?php
$stack = array("orange", "apple", "raspberry");
$fruits = array_pop($stack);
print_r($stack);
print_r($fruits);
?>

Пример выведет следующее:

Array
(
    [0] => orange
    [1] => banana
    [2] => apple
)

Функция поддерживается PHP 4, PHP 5

array_push

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

Синтаксис:

int array_push(array arr, mixed var1 [, mixed var2, ..])

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

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

Пример использования функции array_push():

<?php
$stack = array("orange", "banana");
array_push($stack, "apple", "raspberry");
print_r($stack);
?>

Пример выведет следующее:

Array
(
    [0] => orange
    [1] => banana
    [2] => apple
    [3] => raspberry
)

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

Функция поддерживается PHP 4, PHP 5

array_shift

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

Синтаксис:

mixed array_shift(array arr)

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

Если массив arr пустой или он не является массивом, функция возвращает NULL.

После использования этой функции указатель массива становится в начало.

Пример использования функции array_shift():

<?php
$stack = array("orange", "banana", "apple", "raspberry");
$fruit = array_shift($stack);
print_r($stack);
?>

Данный пример выведет следующее:

Array
(
    [0] => banana
    [1] => apple
    [2] => raspberry
)

а переменная $fruit будет иметь значение "orange"

Функция поддерживается PHP 4, PHP 5

array_unshift

Добавляет одно или несколько значений в начало массива.

Синтаксис:

int array_unshift(list arr, mixed var1 [,mixed var2, ...])

Функция array_unshift() добавляет переданные значения var в начало массива arr. Порядок расположения новых элементов в массиве сохраняется. Все цифровые индексы массива будут изменены таким образом, чтобы она начинались с нуля. Все строковые индексы массива не изменяются.

Функция возвращает новое количество элементов в массиве.

Пример использования функции array_unshift():

<?php
$queue = array("orange", "banana");
array_unshift($queue, "apple", "raspberry");
?>

Теперь переменная $queue будет иметь следующие элементы:

Array
(
    [0] => apple
    [1] => raspberry
    [2] => orange
    [3] => banana
)

Функция поддерживается PHP 4, PHP 5

array_unique

Удаляет дублирующие значения в массиве.

Синтаксис:

array array_unique(array arr)

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

Пример использования функции array_unique():

<?php
$input = array("a" => "green", "red", "b" => 
         "green", "blue", "red");
$result = array_unique($input);
print_r($result);
?>

Пример выведет следующее:

Array
(
    [a] => green
    [0] => red
    [1] => blue
)

Пример использования функции array_unique(): Сравнение типов данных

<?php
$input = array(4, "4", "3", 4, 3, "3");
$result = array_unique($input);
var_dump($result);
?>

Пример выведет следующее:

array(2) {
  [0] => int(4)
  [2] => string(1) "3"
}

Функция поддерживается PHP 4 >= 4.0.1, PHP 5

array_chunk

Функция разбивает массив на части.

Синтаксис:

array array_chunk(array arr, int size [, bool preserve_keys])

Функция array_chunk() разбивает исходный массив arr на несколько массивов, длина которых задается числом size. Если размерность исходного массива не делится ровно на size частей, то последний массив будет иметь меньшую размерность.

Функция array_chunk() возвращает многомерный массив, индексами которого начинаются от 0 и до кол-ва полученных массивов, а значения - полученные в результате разбивки массивы.

Необязательный параметр preserve_keys указывает, стоит ли сохранять ключи исходного массива или нет. Если этот параметр равен false (значение по умолчанию), то индексы полученных массивов будут заданы числами начиная с нуля. Если же параметр равен true, то ключи исходного массива сохраняются.

Пример использования функции array_chunk():

$array = array("1-ый элемент",
               "2-ой элемент",
               "3-ий элемент",
               "4-ый элемент",
               "5-ый элемент");

print_r(array_chunk($array, 2));
print_r(array_chunk($array, 2, TRUE));

Пример выведет следующее:

Array
(
    [0] => Array
        (
            [0] => 1-ый элемент
            [1] => 2-ой элемент
        )

    [1] => Array
        (
            [0] => 3-ий элемент
            [1] => 4-ый элемент
        )

    [2] => Array
        (
            [0] => 5-ый элемент
        )

)
Array
(
    [0] => Array
        (
            [0] => 1-ый элемент
            [1] => 2-ой элемент
        )

    [1] => Array
        (
            [2] => 3-ий элемент
            [3] => 4-ый элемент
        )

    [2] => Array
        (
            [4] => 5-ый элемент
        )

)

Функция поддерживается PHP 4 >= 4.2.0, PHP 5

array_fill

Функция заполняет массив определенными значениями.

Синтаксис:

array array_fill(int start_index, int num, mixed value)

Функция array_fill() возвращает массив, который содержит значения, указанные в параметре value размерностью num начиная с элемента, указанного в параметре start_index.

Пример использования array_diff_uassoc():

<?php
$a = array_fill(5, 6, 'banana'); 
print_r($a);
?>

Пример выведет следующее:

Array
(
    [5]  => banana
    [6]  => banana
    [7]  => banana
    [8]  => banana
    [9]  => banana
    [10] => banana
)

Функция поддерживается PHP 4 >= 4.2.0, PHP 5

array_filter

Функция применяет фильтр к массиву, используя пользовательскую функцию.

Синтаксис:

array array_filter(array input [, callback callback])

Функция array_filter() возвращает массив, который содержит значения, имеющиеся в массиве input отфильтрованные в соответсвтии с результатами работы пользовательской функции callback.

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

Пример использования функции array_filter():

<?php
function odd($var) {
    return ($var % 2 == 1);
}

function even($var) {
    return ($var % 2 == 0);
}

$array1 = array ("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
$array2 = array (6, 7, 8, 9, 10, 11, 12);

echo "Нечетные :n";
print_r(array_filter($array1, "odd"));
echo "Четные   :n";
print_r(array_filter($array2, "even")); 
?>

Пример выведет следующее:

Нечетные :
Array
(
    [a] => 1
    [c] => 3
    [e] => 5
)
Четные   :
Array
(
    [0] => 6
    [2] => 8
    [4] => 10
    [6] => 12
)

Стоит отметить, что вместо имени фильтрующей функции можно указать массив, который содержит ссылку на объект и имя метода.

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

Функция поддерживается PHP 4 >= 4.0.6, PHP 5

array_map

Применение пользовательской функции ко всем элементам указанных массивов.

Синтаксис:

array array_map(mixed callback, array arr1 [, array ...])

Функция array_map() возвращает массив, который содержит элементы всех указанных массивов после обработки пользовательской функцией callback.

Количество параметров, передаваемых пользовательской функции, должно совпадать с количеством массивов, переданных функции array_map().

Пример испольльзования функции array_map(): Обработка одного массива

<?php
function cube($n) {
    return $n*$n*$n;
}

$a = array(1, 2, 3, 4, 5);
$b = array_map("cube", $a);
print_r($b);
?>

Приведенный пример выведет следующее:

Array
(
    [0] => 1
    [1] => 8
    [2] => 27
    [3] => 64
    [4] => 125
)

Пример испольльзования функции array_map(): Обработка нескольких массивов

<?php
function show_Spanish($n, $m) {
    return "Число $n по-испански -  $m";
}

function map_Spanish($n, $m) {
    return array ($n => $m);
}

$a = array(1, 2, 3, 4, 5);
$b = array("uno", "dos", "tres", "cuatro", "cinco");

$c = array_map("show_Spanish", $a, $b);
print_r($c);

$d = array_map("map_Spanish", $a , $b);
print_r($d);
?>

Приведенный пример выведет следующее:

// printout of $c
Array
(
    [0] => Число 1 по-испански -  uno
    [1] => Число 2 по-испански -  dos
    [2] => Число 3 по-испански -  tres
    [3] => Число 4 по-испански -  cuatro
    [4] => Число 5 по-испански -  cinco
)

// printout of $d
Array
(
    [0] => Array
        (
            [1] => uno
        )

    [1] => Array
        (
            [2] => dos
        )

    [2] => Array
        (
            [3] => tres
        )

    [3] => Array
        (
            [4] => cuatro
        )

    [4] => Array
        (
            [5] => cinco
        )

)

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

Следует отметить, что если вместо имени обрабатывающей функции задать null, то будет создан массив массивов.

Пример испольльзования функции array_map(): Создание массива массивов

<?php
$a = array(1, 2, 3, 4, 5);
$b = array("one", "two", "three", "four", "five");
$c = array("uno", "dos", "tres", "cuatro", "cinco");

$d = array_map(null, $a, $b, $c);
print_r($d);
?>

Приведенный пример выведет следующее:

Array
(
    [0] => Array
        (
            [0] => 1
            [1] => one
            [2] => uno
        )

    [1] => Array
        (
            [0] => 2
            [1] => two
            [2] => dos
        )

    [2] => Array
        (
            [0] => 3
            [1] => three
            [2] => tres
        )

    [3] => Array
        (
            [0] => 4
            [1] => four
            [2] => cuatro
        )

    [4] => Array
        (
            [0] => 5
            [1] => five
            [2] => cinco
        )

)

Функция поддерживается PHP 4 >= 4.0.6, PHP 5

Добавить страницу в закладки:
РАЗРЕШАЕТСЯ перепечатывать и копировать информацию ТОЛЬКО ПРИ РАЗМЕЩЕНИИ ссылки на оригинал!
(<A href="https://www.spravkaweb.ru/">Справочник Web-языков</A>)
другие проекты
Rambler\'s Top100 Индекс цитирования