Изучаем функции для работы с массивами

29.12.2017 в 13:03
14524
+1356

Мы с вами изучили основы работы с массивами, у вас теперь есть понимание того, что такое массив, что такое цикл, и мы даже реализовали несколько своих функций для работы с массивами. Теперь вы готовы получить знания об уже готовых функциях для работы с массивами в PHP.

В этом плане стандартная библиотека функций предлагает нам большой выбор, практически на все случаи жизни. Я же постараюсь в этом уроке рассказать вам о тех функциях, с которыми лично мне приходится работать ежедневно. На мой взгляд, вся веб-разработка на PHP выглядит плюс/минус одинаково, и большинству разработчиков приходится работать с этими же функциями. Так что, функции для работы с массивами в PHP, перечисленные в этой статье, вам пригодятся с очень большой вероятностью. Итак, давайте посмотрим, какие же задачи нам чаще всего требуется решать при работе с массивами.

Проверка существования ключа в массиве

Зачастую мы не знаем, есть ли в массиве какой-либо ключ. И если мы попробуем обратиться по ключу, которого в массиве нет – возникнет ошибка. Простейший пример.

<?php

$array = [
    'login' => 'admin'
];

echo $array['password'];

В результате, как и ожидали – ошибка.

Ошибка при обращении к несуществующему элементу массива

Чтобы подобной ситуации избежать, следует проверять, есть ли такой ключ в массиве или нет. Для этого есть функция array_key_exists($key, $array). Она принимает на вход первым аргументом ключ, а вторым – массив, в котором его наличие нужно проверить. Возвращает true, если ключ найден, и false – если нет. Использование выглядит следующим образом.

<?php

$array = [
    'login' => 'admin'
];

if (array_key_exists('password', $array)) {
    echo $array['password'];
} else {
    echo 'Ключ "password" в массиве не найден';
}

Результат:
Ошибки не возникло

Проверка существования значения

Не менее часто приходится узнать, а есть ли значение в массиве. Например, мы хотим узнать, есть ли число 7 в массиве. Как мы помним, в прошлом уроке мы самостоятельно написали для этого функцию. Однако в реальном кодинге нужно по большей части пользоваться готовым. Эта функция называется in_array($needle, $array). Здесь $needle – это то, что ищется, $array – массив, в котором ищем. Она возвращает true, если значение найдено, и false – если нет. Выглядит её применение следующим образом.

<?php

$numbers = [
    1,
    0,
    7,
    4
];

if (in_array(7, $numbers)) {
    echo 'В массиве есть число 7.';
}

Объединение массивов

Очень часто требуется объединить 2 массива в один. Для этого есть функция array_merge($array1, $array2). В качестве аргументов, как вы поняли, этой функции передаются массивы, которые нужно объединить. Возвращает эта функция получившийся массив.

<?php

$articlesFromIvan = [
    'Статья 1',
    'Статья 2'
];

$articlesFromMaria = [
    'Статья 3',
    'Статья 4'
];

$allArticles = array_merge($articlesFromIvan, $articlesFromMaria);

var_dump($allArticles);

Результат:
Объединение двух массивов

Обратите внимание, что если ключи будут строковыми, то поведение функции будет несколько иным. Если строковые ключи из $array2 будут пересекаться с ключами из массива $array1, то в результат для пересекающихся ключей попадут только значения из $array2. Они как бы перезапишут то, что было в первом массиве.

<?php

$array1 = [
    'login' => 'admin',
    'password' => '123'
];

$array2 = [
    'password' => '666'
];

var_dump(
    array_merge($array1, $array2)
);

Результат получится следующим:
Объединение массивов со строковыми ключами

Это может быть удобно, когда нам необходимо обновить часть каких-то данных в массиве. Как в примере выше – мы обновили пароль, оставив логин прежним.

Другие функции

Функций для работы с массивами в PHP очень много. И остальные вы найдёте на сайте с документацией PHP.
А домашнее задание вам в этом поможет.

Если этот урок был вам полезен, расскажите об этом курсе своим знакомым или поделитесь на него ссылкой в социальных сетях.

loader
29.12.2017 в 13:03
14524
+1356
Домашнее задание

Используя встроенные в PHP функции решите следующие задачи:

  1. Есть массив чисел – [1, 3, 2]. Отсортируйте их от меньшего к большему и преобразуйте в строку, в которой значения элементов массива разделяются двоеточиями. В результате должна получиться строка “1:2:3”.
  2. Есть массив чисел – [1, 2, 3, 4, 5]. Получите с помощью одной функции массив, в котором будут элементы исходного с 1-го элемента по 3-й. В результате должен получиться массив с числами [2, 3, 4].
  3. Решите вот эту задачу
Комментарии
Этот урок набрал набрал достаточно большое количество комментариев и дальнейшее его комментирование отключено. Если вы хотели убедиться в правильности выполнения ДЗ или у вас возник вопрос по уроку, посмотрите ранее добавленные комментарии, кликнув по кнопке ниже. Скорее всего вы найдете там то, что искали. Если это не помогло - задайте вопрос в чате в телеграме - https://t.me/php_zone
Логические задачи с собеседований