В прошлый раз мы говорили о том, как преобразовать переменные в массив, а также массив в переменные. Сегодня подробно рассмотрим, как преобразовать массив в строку, а также, как потом восстановить массив из строки… и не только. В этой статье также посмотрим различные функции для вывода структуры массива.
Функции, которые мы здесь сегодня рассмотрим будут полезны, как для определенных конкретных задач, так и для отладки программ. Уверена, что они Вам пригодятся. Так что давайте без долгих вступлений приступим к делу!
Преобразовываем массив в строку
Сейчас я покажу Вам две функции, при помощи которых мы можем преобразовать массив в строку.
Первая функция называется implode().
В качестве параметров для этой функции передаются: символ-разделитель, который будет отделять элементы друг от друга (например, тире) и массив, который нужно преобразовать в строку.
Результат работы функции можно занести в переменную, которую в дальнейшем можно вывести на экран, чтобы увидеть результат.
Давайте посмотрим все это на примере.
<?php $Mass = array('Чай','Кофе','Молоко'); $str = implode('-',$Mass); echo $str; ?>
Как видите, у нас есть простой массив, который мы хотим преобразовать в строку. В качестве разделителя используется «-» (тире). После преобразований мы выводим полученную строку на экран.
А вот то, что мы увидим на экране.
Кстати, если вместо массива-списка у нас был бы ассоциативный массив с ключами, то результат мы получили бы тот же самый. Ключи будут проигнорированы и в переменную попадут только значения элементов массива, разделенные заданным знаком-разделителем.
Можете самостоятельно провести такой эксперимент и создать вместо массива-списка ассоциативный массив, а потом посмотреть результат.
Абсолютно то же самое делает и функция join().
Весь код будет идентичен за исключением имени самой функции. И результат, как Вы понимаете, будет в точности таким же.
Преобразовываем массив в строку специального формата
Следующая функция также преобразует массив в строку, но эта строка будет несколько иного формата.
Что это значит? Это значит, что помимо значений элементов массива в строке, мы получим и еще кое-какую информацию. Мы увидим сколько элементов в массиве, индекс каждого элемента и число символов в нем.
Данная функция называется serialize(). В качестве параметра в скобках передается имя массива.
Давайте посмотрим ее работу на примере.
<?php $Mass = array('Audi','Ferrari','Toyota'); $str = serialize($Mass); echo $str; ?>
Как Вы можете видеть, формат здесь уже другой. Здесь первое, что мы видим – это число элементов массива, далее в фигурных скобках идут номер индекса элемента, число символов и само значение элемента – и так для каждого элемента массива.
Если массив будет ассоциативным, то, как результат, мы увидим: сначала число элементов в массиве, далее в фигурных скобках число символов ключа, сам ключ, число символов значения элемента, само значение элемента. И так для всех элементов массива.
Посмотрите на примере.
<?php $Mass = array('Car'=>'Audi','Car1'=>'Ferrari','Car2'=>'Toyota'); $str = serialize($Mass); echo $str; ?>
А вот и результат работы функции с ассоциативным массивом.
Для восстановления массива из строки, преобразованной при помощи функции serialize() мы можем использовать функцию unserialize().
Для этого нам нужно будет создать переменную, в которую мы и поместим результат выполнения данной функции. Результатом, как Вы понимаете, будет массив.
В качестве параметра в скобках, нужно будет передать имя переменной, в которой лежит наша строка.
Далее мы можем распечатать массив, чтобы убедиться, что функция отработала корректно.
Давайте сделаем это из нашего последнего примера.
<?php $Mass = array('Car'=>'Audi','Car1'=>'Ferrari','Car2'=>'Toyota'); $str = serialize($Mass); $Mass1 = unserialize($str); print_r ($Mass1); ?>
В итоге обратно получаем наш массив.
Выводим структуру массива
Ну и на последок рассмотрим пару функций для вывода структуры массива. Такие функции очень полезны при отладке и тестировании программ.
Первая функция скорее всего Вам знакома из прошлых уроков. Мы очень часто ее использовали, как раз для того, чтобы увидеть структуру массива.
Это функция print_r(). В скобка передается имя массива, структуру которого мы хотим вывести.
<?php $Mass = array('Audi','Ferrari','Toyota'); echo '<pre>'; print_r ($Mass); echo '</pre>'; ?>
Думаю, здесь все понятно. Мы получаем структуру массива.
А вот следующая функция var_dump() способна дать нам гораздо больше информации. А именно, мы можем увидеть не только ключ и значение элемента в массиве, а также: количество элементов массива, тип каждого элемента и число символов, которое он содержит (если элемент строчный).
Давайте посмотрим.
<?php $Mass = array('Audi',5,'Toyota',false); echo '<pre>'; var_dump($Mass); echo '</pre>'; ?>
Я специально добавила в наш массив один целочисленный элемент и один элемент, который содержит булево значение, чтобы Вы могли оценить результаты работы функции в полной мере.
Как видите, она дает достаточно подробную информацию о нашем массиве и о его элементах, так что при отладке и тестировании не забудьте про эту функцию.
Ну вот, наверное, на сегодня и все.
Буду надеяться, что знакомства с данными функциями поможет Вам при написании кода php и работе с массивами.
Добавляйте страничку в «Избранное», чтобы информация всегда была «под рукой».
Делитесь статьей с друзьями при помощи кнопок соц. сетей, которые расположены чуть ниже, а также не забывайте подписаться на обновления блога. Впереди еще много всего интересного!
С Вами была Анна Котельникова! Жду Ваших комментариев.
Успехов Вам и до скорых встреч!
Link exchange is nothing else however it is just placing the other person’s
webpage link on your page at appropriate place and other person will also
do similar in favor of you.
Oh my goodness! Awesome article dude! Thanks,
However I am going through difficulties with your RSS.
I don’t know the reason why I am unable to subscribe to it.
Is there anyone else getting identical RSS issues?
Anybody who knows the answer can you kindly respond? Thanks!!
excellent publish, very informative. I wonder why the opposite specialists of this sector do
not understand this. You must continue your writing.
I’m sure, you’ve a great readers’ base already!
Hello, yes this post is truly fastidious
and I have learned lot of things from it concerning blogging.
thanks.
На днях узнал о сервисе BAILRY – бесплатная регулярная (периодическая) проверка сайта на доступность. Возможно, кому-нибудь он пригодится! Есть там и платная подписка – для постоянного контроля доступности сайта. Удачи всем!