Переворачиваем и перемешиваем массив в php

/ 👁 4533

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


переворачивание и перемешивание массива в php
Эти действия вполне могут Вам пригодиться при решении различных задач программирования, так что давайте познакомимся с данными функциями.

Работать с ними совершенно не сложно, так что данный пост будет достаточно коротким. Однако, есть и некоторые нюансы, который нужно будет учесть.

Ну что ж, давайте начнем с переворачивания массива.

Переворачивание массива в php

Чтобы перевернуть массив, познакомимся с функцией array_reverse(). После применения данной функции к определенному массиву, мы получим массив, элементы которого будут следовать в обратном порядке относительно исходного массива.

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

<?
$Mass = array(1,2,3,4);
$Mass = array_reverse($Mass);
print_r($Mass);
?>

 

переворачивание массива-списка в php
Результат, как мы можем видеть из скриншота, именно тот, которого мы и ожидали: последний элемент стал первым, предпоследний – вторым и т.д.

Мы проделали переворачивание с массивом-списком. А как же насчет ассоциативных массивов? Ведь в них значения элемента привязано к ключу!

И ассоциативные массивы можно спокойно переворачивать, при этом их связь с ключом не потеряется.

Давайте рассмотрим это на простом примере.

<?
$Mass['one']=1;
$Mass['two']=2;
$Mass['three']=3;
$Mass = array_reverse($Mass);
print_r($Mass);
?>

 

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

Перемешивание массива в php

Также мы можем перемешать элементы массива случайным образом. Для этого существует специальная функция shuffle().

Ее применение достаточно простое. Однако, здесь нужно запомнить один небольшой нюанс: если Вы будете применять функцию к ассоциативному массиву, то в результате получите данный массив в виде списка. То есть значения элементов массива будут перемешаны, но связь ключ-значение уже не сохранится. Результатом будет массив-список.

Давайте рассмотрим на примерах.

Для начала я перемешаю значения элементов обычного массива-списка:

<?
$Mass=array(1,2,3,4);
shuffle($Mass);
print_r($Mass);
?>

 

перемешивание массива-списка
А вот и результат! Как Вы видите, значения элементов массива расположились в случайном порядке. Причем, если Вы будете обновлять страницу, то результат будет меняться.

Теперь давайте тоже самое проделаем с ассоциативным массивом:

<?
$Mass['one'] = 1;
$Mass['two'] = 2;
$Mass['three'] = 3;
$Mass['four'] = 4;
shuffle($Mass);
print_r($Mass);
?>

 

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

Вот об этом нюансе перемешивания, пожалуйста, не забывайте.

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

Добавляйте страничку в закладки, чтобы можно было всегда к ней вернуться и еще раз посмотреть, как работать с массивами. Также читайте другие посты, посвященные массивам php… и не только. Ссылки Вы можете видеть ниже.

Жду Ваших комментариев! Делитесь постом с друзьями при помощи социальных кнопок, которые расположены ниже, а также подписывайтесь на обновления, чтобы всегда быть в курсе новых статей и уроков.

С Вами была Анна Котельникова.

Успехов Вам и до скорых встреч в следующих публикациях!

2 комментария

  1. And 08.08.2023
  2. egor 02.01.2024

Leave a Reply