Как получить и заменить часть массива в php

Сегодня продолжим изучение массивов в php и поговорим о том, как можно получить любую, интересующую нас часть массива, а также о том, как можно заменить какую-либо часть массива в 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);
?>

 

замена части массива в php
Как видите, здесь у нас есть основной массив «$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>';
?>

 

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

Цвет можно вводить, как кодом, так и названием цвета на английском языке.

Вы можете протестировать этот мини-пример, перейдя по иконке «Демо» в начале статьи.

заполнение формы для формирования стиля заголовка

стиль заголовка, сформированный при помощи замены части массива в php

Теперь, я думаю, Вы поняли, как можно получить или заменить часть массива, и как это можно использовать.

Надеюсь урок был Вам полезен. Успехов Вам в освоении массивов.

Урок для Вас подготовила Анна Котельникова.

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

До новых скорых встреч, друзья!

Leave a Reply