Сегодня продолжим изучение массивов в php и поговорим о том, как можно получить любую, интересующую нас часть массива, а также о том, как можно заменить какую-либо часть массива в php на что-то еще.
Страницы, написанные при помощи php отличаются своей динамикой. Пользователь может взаимодействовать с такими страницами и тут же видеть результат своего взаимодействия. В том числе поэтому язык php вызывает такой интерес, и, если Вы хотите создавать динамику в своих сайтах и приложениях, то значит читаете этот пост не зря.
Сегодня мы рассмотрим две функции, при помощи которых можно получить определенную часть массива, а также заменить часть массива на что-то еще, например, на переменную или другой массив.
А потом я покажу Вам небольшой пример с одной из этих функций, который, как раз, подразумевает взаимодействие с пользователем и определенную динамику наших страниц.
Давайте начнем!
Получаем часть массива при помощи функции array_slice()
Итак, чтобы получить определенную часть массива, применяется функция array_slice().
Данной функции передается три параметра: Массив, Начальная позиция, Количество элементов.
Исходя из этого, можно предположить, что мы можем выбрать любую часть массива (из начала, из конца или из середины), и эта часть будет включать в себя нужное нам число элементов.
Результатом работы данной функции будет массив из выбранных элементов. То есть, если мы занесем результат работы функции в переменную, то далее сможем вывести на экран массив выбранных элементов, или сделать с ним что-то еще.
Давайте посмотрим на примере:
<?php $mass = array(1,2,3,4,5,6); $mass1 = array_slice($mass,2,2); print_r ($mass1); ?>
Вот этот нехитрый код выбирает два элемента из массива «$mass», начиная со второго элемента, в данном случае – это элемент со значением «3». Мы заносим результат выборки в переменную «$mass1», а потом выводим результат на экран. В итоге мы и получаем два элемента из середины массива.
Кстати, второй параметр, который принимает функция array_slice(), может быть и отрицательным! Тогда отсчет начальной позиции будет производиться с конца массива.
Например, если мы у кода, приведенного выше, поменяем только знак второго параметра функции, то получим уже совсем другой результат.
<?php $mass = array(1,2,3,4,5,6); $mass1 = array_slice($mass,-2,2); print_r ($mass1); ?>
Как видите, теперь мы получили в качестве выбранных элементов элементы со значениями «5» и «6». Так как мы указали Начальную позицию со знаком минус, то отсчет начался с конца массива, после чего и были выбраны два элемента.
Замена полученной части массива
Полученную часть массива мы можем заменить одним элементом, либо массивом элементов.
Здесь нам поможет функция array_splice().
Она уже принимает четыре параметра: Массив, Начальную позицию, Количество элементов, Добавляемый массив.
То есть сначала мы указываем с каким массивом будем работать, сколько элементов и откуда выбирать и на что их заменять.
В общем то здесь все достаточно просто.
<?php $mass = array(1,2,3,4,5,6); $mass2 = array('two','three'); array_splice($mass,1,2,$mass2); print_r ($mass); ?>
Как видите, здесь у нас есть основной массив «$mass» и массив, которым мы будем заменять часть элементов «$mass2».
Функция array_splice() принимает четыре параметра: массив, с которым работаем, начальную позицию, сколько элементов будем удалять и на что заменять.
А после всего этого мы выводим массив «$mass» на экран уже с замененными элементами.
Практический пример замены части массива
Давайте теперь рассмотрим небольшой практический пример с заменой элементов массива, которую будет осуществлять сам пользователь через специальную форму и сразу видеть результат своей замены.
Например, у нас есть специальная форма, в которую пользователь может ввести параметры для написания заголовка: текст заголовка, цвет, размер шрифта. А потом, нажав на специальную кнопку, он может увидеть созданный им стиль заголовка и понять нравится он ему или нет.
Для этого я сначала создам html-документ, в котором и пропишу код для данной формы. В качестве метода передачи укажем «post», а в качестве файла, который будет обрабатывать форму файл «mass8.php» – его мы создадим совсем скоро.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <title>Untitled Document</title> </head> <body> <h3>Создадим стиль для заголовка</h3> <form method="post" action="mass8.php"> <label for="title">Заголовок:</label> <input type="text" name="title" id="title"><br> <label for="color">Цвет:</label> <input type="text" name="color" id="color"><br> <label for="fontSize">Размер шрифта:</label> <input type="number" name="fontSize" id="fontSize"><br> <input type="submit" value="Посмотреть заголовок"> </form> </body> </html>
Вот так будет выглядеть наша форма. Она без стилей и смотрится немного коряво, но при желании Вы можете задать необходимые стили и сделать ее красивой, моя же задача сейчас – показать, как все это будет работать, поэтому стилизацию формы я опущу и оставлю на Ваше усмотрение.
А теперь самое интересное.
Создаем файл-обработчик формы «mass8.php».
Для начала в этом файле мы объявим массив с тремя элементами: содержанием заголовка, цветом и размером шрифта. Можно установить какие-либо начальные значения, либо оставить просто три пусты элемента массива. Я задам начальные значения, которые потом будут заменяться пользовательскими.
Далее получаем значения из нашей формы и заносим их в переменные.
После этого формируем еще один массив, элементами которого будут являться как раз эти переменные, полученные из формы.
А теперь применяем функция array_splice(). Выбираем с нулевого элемента три элемента (то есть, в нашем случае, все) и заменяем элементы пользовательскими.
После этого организуем вывод заголовка с соответствующими стилями на экран. Я также вывела и ссылку для возврата на предыдущую страницу, чтобы можно было попробовать еще.
<?php $Mass = array('Заголовок','black','14'); $title = $_POST['title']; $color = $_POST['color']; $fontSize = $_POST['fontSize']; $Mass2 = array($title,$color,$fontSize); array_splice($Mass,0,3,$Mass2); echo '<p style="font-size:'.$Mass[2].'; color:'.$Mass[1].'">'.$Mass[0].'</p>'; echo '<a href="mass8.html">Вернуться назад и попробовать еще</a>'; ?>
Теперь, когда наш пользователь будет вводить свои параметры для написания заголовка, заголовок с этими параметрами будет отображаться на экране, и пользователь сможет наглядно увидеть, как это выглядит.
Цвет можно вводить, как кодом, так и названием цвета на английском языке.
Вы можете протестировать этот мини-пример, перейдя по иконке «Демо» в начале статьи.
Теперь, я думаю, Вы поняли, как можно получить или заменить часть массива, и как это можно использовать.
Надеюсь урок был Вам полезен. Успехов Вам в освоении массивов.
Урок для Вас подготовила Анна Котельникова.
Подписывайтесь на обновления блога, оставляйте свои комментарии и делитесь уроком с друзьями при помощи кнопок соц. сетей. Буду Вам очень даже благодарна!
До новых скорых встреч, друзья!