Изучаем PHP - Массивы

 

Приветствую Вас дорогой читатель Блога RS! Сегодня мы с Вами продолжим по немного изучать язык программирования - php. Темой сегодняшнего поста - массивы. Для чего они нужны и, что они из себя представляют вообще? Ну начну с того, что массив по сути та же переменная, а нужны они для более удобной работы с данными. Поясню. Предположим нам необходимо 100 переменных для хранения какой либо информации. Первое, что придет на ум новичку - это необходимость создать 100 разных переменных типа - $a1;$a2$a3...$a100. С какой то стороны новичок будет прав! Ведь нам и в правду придется создавать 100 переменных, вот только не отдельных а одну большую переменную, то бишь массив - $a[0];$a[1];$a[3]...$a[100]

 

 

Чем отличается массив от переменной?

 

Какой то кусочек информации о массивах я Вам уже дал, но это еще далеко не конец моего поста Давайте я поэтапно объясню Вам чем отличается переменная от массива, все внимание на картинку:

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

Теперь на этом же пример я покажу что такое массив:

Домик это переменная, но как вы видите эта переменная содержит 4 ячейки, ну то есть комнаты Каждая ячейка, то бишь комната содержит своего человечка, то есть свои данные. Теперь думаю ясно что такое массив Давайте каждому человечку дадим имя и опишем ихний домик в php коде:

<?php
$house[0] = "Оля";
$house[1] = "Маша";
$house[2] = "Витя";
$house[3] = "Саша";
?>

$house - как Вы догадались это домик, [..] - Это комната ( вообще эту циферку называют ключом ) от 0 до 3. Ну а имена это наши человечки ( То есть данные ) Ключ может быть не только цифрой, но и каким-нить словом:

<?php
$a[newyork] = "До фига жителей";
$a[moscow] = "Тоже до фига жителей!";
echo $a[newyork]."<br>";
echo $a[moscow]."<br>";
?>

Результат:

Если поразмыслить то массив это большое хранилище. Для доступа к информации Вам необходимо знать в какой ячейке ( под каким ключом ) лежит нужная Вам информация.

 

Применение

 

При изучение массивов я довольно сразу допер что они из себя представляют, но вот никак не мог понять зачем они? Да, пример со 100 переменными звучит довольно убедительно, но вот только на своей практике с таким количеством переменных я не имел дел, стало быть по большему счету массивы становятся бесполезными? Это не совсем так, перед тем как приступить к написание этого поста, я думал о том где я применял массивы. Если честно в голову не сразу пришел ответ Но на днях я переписывал модуль опроса, и наткнулся как раз на массивы.

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

Как бы выглядела таблица с вариантами ответа на вопрос в опросе без применения массивов? Вот так:


Такой вариант имеет как минимум один минус. При создание такого опроса с 10 вариантами ответов придется сделать в базу данных как минимум 10 запросов, это довольно многовато для такой операции... Уж поверьте мне, я именно поэтому и отказался от такого варианта...

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

Три строчки в базе данных, три разных опроса. Обратите внимание на то, что в колонке "Варианты" и "Голоса" используется вот этот разделитель "|" Этот разделитель позволяет строку разделить на массив:

То есть после преобразования я работаю с массивом $q. После неких операция я собираю из массивов обратно строку, и ее записываю в базу данных. Для меня такой вариант сейчас единственно правильный, мне так удобнее, да и не мне одному

Я конечно зря начал сейчас этот разговор. Довольно много не понятной информации на Вашу голову... Просто очень хочется, что бы Вы не недооценивали массивы, и не повторяли мою ошибку... Так что если Вам не понятен пункт "Применение" не разочаровывайтесь, это всего лишь попытка поведать Вам, что массивы довольно удобны бывают парой. Мы с Вами обязательно будем писать опрос для нашей cms, и вот именно при реализации я Вам расскажу все намного подробнее! А пока, если Вы не поняли то, что я описал выше, просто поверьте мне на слово - массивы Вам пригодятся!

 

Заключение

 

Ну что ж, сегодня мы поговорили о массивах, поняли, что они очень схожи с обычными переменными. Надеюсь я доступно Вам разъяснил чем массив отличается от обычной переменной

Следующим шагом изучения php будет разговор о функциях, так, что не "переключайтесь" и подпишитесь на ленту новостей Если есть какие вопросы, или просто есть, что сказать, то пишите комментарии Удачи Вам, на сегодня у меня все!

_______

P.S.: Быстрый ли у Вас интернет? Пройдите тест, проверка скорости интернета онлайн ответит Вам на Ваш вопрос!

 

Комментарии (5)

Ваше имя *
Сайт
Ваш E-mail *
Ваше сообщение *
 
River, 15 Марта 2012 г. 21:42 пишет:
Гость
Спасибо за столь полезный и интересный сайт. К сожалению в виду отсутствия возможности практики, изучаю теорию. И вот при перечитывании заметил в тексте такой казус:
>>Я конечно зря начала сейчас этот разговор.
А затем в следующем обзаце:
>>Надеюсь я доступно Вам разъяснил чем ... переменной.
Теперь даже не знаю как к вам обращаться:))
Rio-Shaman, 16 Марта 2012 г. 02:58 пишет:
Автор
Различие между массивом и переменной надеюсь объяснил доступно, а вот область применения массива, разговор лишний. И я пометил, что информация об области применения значительная прибавка к информации, которую необходимо воспринять. Так что казуса тут нет, речь идет о двух разных пунктах:
- Чем отличается массив от переменной?
- Применение
Ответ для пользователя: River
River, 16 Марта 2012 г. 07:54 пишет:
Гость
Я прекрасно понимаю различие массивов и переменных, читал C когда то. Я имел ввиду что во всем примере про опрос повествование идет от мужского рода, а в конце этого примера, заключение от женского. Исправьтесь пожалуйста:)
Rio-Shaman, 16 Марта 2012 г. 08:55 пишет:
Автор
Очепятка =) сейчас исправлю...
Ответ для пользователя: River
Олег, 05 Апреля 2014 г. 10:43 пишет:
Гость
Благодарю вас! У вас очень доступный и понятный материал!