Выбрать главу

Создание массива

array

Создание и инициализация массива.

Синтаксис:

array array([mixed ...])

Функция возвращает созданный массив. Индексы и значения в массиве разделяются оператором =. Пары index=value разделяются запятыми, они определяют индекс и значение.

Индекс может быть как числовым, так и строковым. В ассоциированных массивах индекс всегда ведет себя как строковой. В случае, если индекс не указан, будет подставляться автоинкремент (на 1 больше), начиная с 0. Если при создании массива были указаны два элемента с одинаковыми индексами, то последний элемент заменяет первый.

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

<?php

$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] => Март

)

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

range

Создает массив и заполняет его значениями.

Синтаксис:

array range(int low, int high[, int step])

Функция range() возвращает массив с значениями от low по high включительно. Если low high, то последовательность будет от high до low.

Дополнительный параметр step был введен в PHP 5.0.

Если третий параметр указан, то числа будут вводиться от low до high с шагом step. Если он не указан, то шаг будет равен 1.

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

<?php

// array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)

foreach (range(0, 12) as $number) {

echo $number;

}

// The step parameter was introduced in 5.0.0

// array(0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100)

foreach (range(0, 100, 10) as $number) {

echo $number;

}

// Use of character sequences introduced in 4.1.0

// array("a", "b", "c", "d", "e", "f", "g", "h", "i");

foreach (range("a", "i") as $letter) {

echo $letter;

}

// array("c", "b", "a");

foreach (range("c", "a") as $letter) {

echo $letter;

}

?>

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

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

array_reverse

Расстановка элементов массива в обратном порядке.

Синтаксис:

array array_reverse(array arr [, bool preserve_keys])

Функция array_reverse() возвращает массив, элементы которого следуют в обратном порядке относительно массива, переданного в параметре. При этом связи между ключами и значениями не теряются, если дополнительный параметр preserve_keys = TRUE.

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

<?php

$input = array("php", 4.0, array("green", "red"));

$result = array_reverse($input);

$result_keyed = array_reverse($input, true);

?>

Этот пример сделает оба массива $result и $result_keyed с одинаковыми значениями, но различными ключами. Распечатка массивов $result и $result_keyed будет следующей:

Array( [0] => Array ( [0] => green [1] => red ) [1] => 4 [2] => php)Array( [2] => Array ( [0] => green [1] => red ) [1] => 4 [0] => php)

Примечание: Второй параметр preserve_keys был добавлен в PHP 4.0.3.

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

shuffle

Перемешивание элементов массива.

Синтаксис:

void shuffle(array arr)

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

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

<?php

$numbers = range(1, 20);

srand((float)microtime() * 1000000);

shuffle($numbers);

while (list(, $number) = each($numbers)) {

echo "$number ";

}

?>

Замечание: Начиная с PHP 4.2.0, больше нет необходимости инициализировать генератор случайных чисел функциями srand() или mt_srand(), поскольку теперь это происходит автоматически.

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

sort

Сортировка массива по возрастанию.

Синтаксис:

bool sort(array arr [, int sort_flags])

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

Замечание: Эта функция изменяет ключи у отсортированных значений. Т.е. любой ассоциативный массив воспринимается этой функцией как список. После упорядочивания последовательность ключей превращается в 0,1,2,..., а значения нужным образом перераспределяются. Как видим, связи между параметрами ключ=значение не сохраняются, более того - ключи просто пропадают, поэтому сортировать что-либо, отличное от списка, вряд ли целесообразно.

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

<?php

$fruits = array("lemon", "orange", "banana", "apple");

sort($fruits);

reset($fruits);

while (list($key, $val) = each($fruits)) {

echo "fruits[" . $key . "] = " . $val . "n";

}

?>

Этот пример выведет:

fruits[0] = applefruits[1] = bananafruits[2] = lemonfruits[3] = orange

Аргумент sort_flags задает следующие флаги сортировки:

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