Отправляет email-рассылки с помощью сервиса Sendsay

PHP-песочница

  Все выпуски  

PHP-песочница Массивы, скрипт комментариев и небольшой видеокурс


Php-«песочница»

Выпуск 30

Здравствуйте. С вами Андрей Чернобай с новым выпуском "PHP-песочницы". Рассылка создана для самых "маленьких" - для тех, кто делает первые шаги в программировании на PHP.

Сегодня в выпуске:

1. Обход массива в цикле

2. Меняем порядок вывода комментариев

3. Мини-курс "Как создать сайт на PHP?"

Обход массива в цикле

Самый простой способ обойти все элементы массива – с помощью цикла for:

for ($i = 0; $i < count($array); $i++)
{

}

Этот способ подходит только тогда, когда элементы массива нумеруются по порядку, начиная с нуля.

Для обхода любых массивов есть специальный оператор foreach.

Его синтаксис такой:

foreach ($имя_массива as [$ключ =>] $значение_элемента)
{
операторы
}

Или («по-научному»):

foreach ($array as [$key =>] $value)
{
операторы
}

Оператор foreach проходит каждый элемент массива по одному разу. В каждом проходе в переменную $key помещается индекс этого элемента, а в переменную $value - значение.

Рассмотрим пример.

Допустим, есть файл-база, в котором записаны имена пользователей, их e-mail и тексты (например, комментариев, оставляемых этими пользователями на странице сайта). И каждому пользователю присваивается порядковый номер. Данные записаны в таком виде:

$id~$name~$email~$text

И далее – произвольный пример этой самой базы (в реальной базе пробелов между разделителями (~) и данными нет):

1 ~ Пользователь_1 ~ login_1@mail.ru ~ Комментарий_1
2 ~ Пользователь_2 ~ login_2@mail.ru ~ Комментарий_2
3 ~ Пользователь_3 ~ login_3@mail.ru ~ Комментарий_3

Задача – выбрать в цикле данные из файла-базы. В общем-то, можно обойтись циклом for, ведь нумерация элементов массива ведётся по порядку, начиная с нуля. Но поскольку я взялся объяснять цикл foreach, то применю его:

$array = file("Имя _файла_базы");// функция file() читает весь файл-базу в массив ($array), в котором каждый элемент – строка с набором данных, относящихся к одному пользователю; например, первый элемент массива такой:
//1 ~ Пользователь_1 ~ login_1@mail.ru ~ Комментарий_1
//второй элемент такой:
//2 ~ Пользователь_2 ~ login_2@mail.ru ~ Комментарий_2
//и т. д.
//нужно вывести построчно все элементы массива в браузере:
// запускаем цикл foreach, в котором указываем название массива ($array), переменную для ключа ($key) и переменную, в которую помещать каждый элемент массива ($str):
foreach ($array as $key => $str)
{
echo $str. "<br/>";// то есть за один проход цикла в переменную $str попадает одна строка из файла-базы и выводится на экран; поскольку foreach указывает, что у нас цикл, то выводиться такие строки-элементы будут, пока есть данные (элементы массива, строки) в базе

В общем-то, ничего сложного. Я даже оставляю это вам на самостоятельный эксперимент: создайте текстовый файл, запишите в него данные в приведённом виде, пропишите путь к этому файлу и – в браузере посмотрите, что выведется. (Как всегда, не советую верить мне на слово, мало ли в каком я был настроении, когда эту статью кропал, может, что и пропустил.)

Ещё скажу, что имена переменных $key и $value – произвольны, например, такие:

foreach ($Languages as $Index => $Val)
{
echo "$Index is $Val <br/>";
}

Или какие угодно ещё.

Без переменной для ключа тоже можно обойтись, потому что она (или он – ключ?) не всегда нужна внутри цикла:

foreach ($aLanguages as $Lang) //здесь после as стоит $Lang, которая и есть значение элемента массива, а ключ не указан, потому что не нужен
{
echo $sLang;
}

Успехов.

Меняем порядок вывода комментариев

Больше года назад я получил письмо от одного из посетителей сайта с вопросом: можно ли изменить скрипт комментариев таким образом, чтобы комментарии на страницу выводились в порядке «от новых к старым»?

Конечно можно!

Тогда я быстренько внёс в скрипт нужные изменения, отправил ответ и… спокойно забыл. А на днях получил подобный вопрос, вспомнил, что ответ уже где-то «валяется» на жёстком диске. Оказалось, что из этого ответа можно сделать несколько полезных статей. Вот я их и сделал. И с вами - делюсь.

Итак, читайте статью: Меняем порядок вывода комментариев

Мини-курс "Как создать сайт на PHP?"

Я записал и выложил на сайт мини-курс - несколько видеоуроков под общим названием "Как создать сайт на PHP?". В общем-то, курс рассчитаны в основном на абсолютных новичков, я-то понимаю, что Вы, уважаемый читатель, давно уже не "абсолютный". Однако, возможно, кое-что и Вам пригодится.

Содержание видеокурса "Как создать сайт на PHP?":

  • Возможности PHP
  • Как установить и настроить локальный сервер?
  • Как создать базу данных MySQL?
  • Создаём шаблон сайта для упражнений
  • Как создать простой PHP-сайт по блочной схеме?
  • Что такое переменные в php?
  • Как вывести информацияю в окно браузера?
  • Что такое условные операторы?
  • Что такое циклы?
  • Что такое массивы?
  • Как создать таблицы в базе данных MySQL?
  • Как создать скрипт регистрации на сайте (PHP+MySQL)?
  • Как создать скрипт авторизации на сайте (PHP+MySQL)?

Видеокурс "Как создать сайт на PHP?" смотрите здесь


Научитесь за 22 часа и 33 минуты программированию на PHP:

"PHP + MySQL для начинающих"


P. S. Остальные уроки и статьи по PHP Вы найдёте как всегда на Вокруг Сайта в разделе Уроки PHP. Все возникающие вопросы Вы можете задать, прислав мне письмо на электроный адрес (см. подпись к выпуску) или через форму для добавления комментариев на страницах сайта.

Автор расылки: Андрей Чернобай
kapitansg@yandex.ru


В избранное