Преобразовать массив в ключ — значение на PHP. Функция array_column

    Комментариев нет 1326

array_column

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

Телеграм-канал serblog.ru

$sql = $pdo->query("SELECT id, username FROM `user` WHERE `status`=10");

Таким образом мы получим список активных пользователей, вернее их ID и Login, в виде ассоциативного массива из которого мы сейчас соберем новый массив.

$RESPONSIBLE = array_column($sql, 'username', 'id');

Функция array_column помогает преобразовать массив в тот, который нам нужен. То есть username мы делаем значением, а ID ключом. В итоге получим что-то вроде этого:

1
2
3
4
5
6
7
8
9
10
11
12
13
Array
(
    [1] => admin
    [2] => hshdfhzx
    [4] => tester
    [5] => papina
    [6] => hxfghxfghxfgh
    [7] => kopteva
    [10] => hhfhfhfgh
    [16] => Alexserser
    [17] => Alex345345
    [18] => vira
)

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

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

Любая сумма на развитие сайта

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *