TOC

This article has been localized into Russian by the community.

Типы данных:

Еще о массивах

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

Implode (сжать) и explode (разорвать)

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

<?php
$values = "Rabbit|Whale|Penguin|Bird";

$array = explode("|", $values);
print_r($array);

echo "<br /><br />";

$string = implode(" and ", $array);
echo $string;
?>

Сначала мы задаем строку с перечнем животных, которые разделены символом |. Затем мы используем функцию explode, чтобы разделить значения в строке в массив - каждый раз, когда в строке встречается символ |, в массиве появляется новое значение. Мы используем функцию print_r() для тестового вывода массива, чтобы проверить, что все работает. После этого, мы используем функцию implode(), чтобы соединить все элементы массива. Первый параметр " and " означает что при добавлении каждого элемента из массива в строку, между ними ставится " and ". Попробуйте запустить код, чтобы увидеть результат. Explode() и implode() могут сильно помочь в разных ситуациях.

Присутствует ли значение в массиве?

Вам довольно часто может потребоваться проверять, присутствует заданное значение в массиве, или нет. Рассмотрим следующий пример, где для такой проверки используется функция in_array():

<?php
$animals = array("Dog", "Tiger", "Snake", "Goat");

if(in_array("Snake", $animals))
    echo "Snake is in the array!";
else
    echo "No snake in the array!";
?>

Функция может принимать до трех параметров, последний из которых необязательный. Он определяет, должно ли быть сравнение строгим - если да, то должны совпадать и значение, и тип данных. По умолчанию данный параметр равен false. Эта функция проверяет значения (values). Если вы хотите проверить, присутствует ли в массиве заданный ключи, используйте array_key_exists().

Уникальные значения

Иногда вы будете получать массивы из внешних источников, таких как базы данных и файлы. Если возможны повторяющиеся значения, можно использовать функцию array_unique(), чтобы их убрать. Функция возвращает массив, в котором все значения уникальны. Попробуйте следующий пример:

<?php
$array = array("Dog", "Tiger", "Snake", "Dog");

echo "Animals in array:<br />";
foreach($array as $value)
    echo $value . "<br />";

echo "<br />";

$array = array_unique($array);

echo "Animals in unique array:<br />";
foreach($array as $value)
    echo $value . "<br />";
?>

Получение случайного элемента

Зачастую бывает нужно получить случайное значение из заданного набора вариантов. К примеру, у вас может быть одна функция со случайной цитатой. Простейший способ сделать это - собрать массив с цитатами, и затем каждый раз выбирать из него случайную. К счастью, в PHP сделать это это очень просто - через функцию array_rand(). Вот пример:

<?php
$animals = array("Dog", "Tiger", "Snake", "Goat");
$randomAnimal = $animals[array_rand($animals, 1)];
echo "Random animal: " . $randomAnimal;
?>

У array_rand() есть два варианта: если в качестве последнего параметра указать 1 (или ничего не указывать - это значение по умолчанию), будет возвращен ключ, по которому можно получить доступ к случайному элементу. Однако, вам может потребоваться более одного элемента. В этом случае, просто укажите, сколько значений вам нужно. В этом случае будет возвращен массив с заданным количеством случайных значений.

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

Используйте функцию sort(), чтобы упорядочить значения массива, как в следующем примере:

<?php
$animals = array("Dog", "Tiger", "Snake", "Goat", "Rabbit", "Whale", "Bird");
echo "Unsorted animals: " . implode(", ", $animals);
echo "<br /><br />";

sort($animals);
echo "Sorted animals: " . implode(", ", $animals);
echo "<br /><br />";

$animals = array_reverse($animals);
echo "Sorted animals, descending order: " . implode(", ", $animals);
?>

Мы просто определяем массив с перемешанным списком животных. Затем выводим его трижды. В первый раз - в исходном порядке, затем отсортированным с помощью метода sort(), и наконец, после применения функции array_reverse(), которая просто разворачивает массив.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!