Reg.ru: домены и хостинг

Крупнейший регистратор и хостинг-провайдер в России.

Более 2 миллионов доменных имен на обслуживании.

Продвижение, почта для домена, решения для бизнеса.

Более 700 тыс. клиентов по всему миру уже сделали свой выбор.

Перейти на сайт->

Бесплатный Курс "Основы работы с фреймворком CakePHP"

Хотите научиться создавать сайты любой сложности быстро?

Познакомьтесь ближе с одним из замечательных фреймворков - CakePHP.

Узнайте о его преимуществах, освойте основные функции и начните применять CakePHP на практике!

Получить в подарок->

Бесплатный Курс "Рисование дизайна сайта с нуля"

Обучающая система для полных новичков в дизайне.

Вы научитесь создавать дизайн любых сайтов - для себя и на заказ.

Вы сможете неплохо зарабатывать, применяя полученные знания на практике.

Получить в подарок->

Бесплатный тренинг "PHP для Создания Сайтов: Введение"

Что нужно знать для создания PHP-сайтов?

Ответ здесь. Только самое важное и полезное для начинающего веб-разработчика.

Узнайте, как создавать качественные сайты на PHP всего за 2 часа и 27 минут!

Записаться бесплатно->

Бесплатный курс "Сайт-Визитка За 15 уроков"

Создайте свой сайт за 3 часа и 30 минут.

После просмотра данного видеокурса у Вас на компьютере будет готовый к использованию сайт, который Вы сделали сами.

Вам останется лишь наполнить его нужной информацией и изменить дизайн (по желанию).

Получить в подарок->

Бесплатный курс "Основы HTML и CSS"

Изучите основы HTML и CSS менее чем за 4 часа.

После просмотра данного видеокурса Вы перестанете с ужасом смотреть на HTML-код и будете понимать, как он работает.

Вы сможете создать свои первые HTML-страницы и придать им нужный вид с помощью CSS.

Получить в подарок->

Бесплатный курс "Сайт на WordPress"

Хотите освоить CMS WordPress?

Получите уроки по дизайну и верстке сайта на WordPress.

Научитесь работать с темами и нарезать макет.

Бесплатный видеокурс по рисованию дизайна сайта, его верстке и установке на CMS WordPress!

Получить в подарок->

Бесплатный курс "Основы работы с JavaScript"

Хотите изучить JavaScript, но не знаете, как подступиться?

После прохождения видеокурса Вы освоите базовые моменты работы с JavaScript.

Развеются мифы о сложности работы с этим языком, и Вы будете готовы изучать JavaScript на более серьезном уровне.

Получить в подарок->

Воспламенитель Кода: Сайт-Визитка на CodeIgniter

Курс предназначен для тех, кто знает основы HTML и CSS.

Изучив его, Вы сможете разрабатывать гибкие и функциональные Сайты-Визитки с панелью администратора.

Все, что нужно для разработки Сайта-Визитки: от шаблона и до переноса на хостинг.

Подробнее->

JavaScript и jQuery с нуля

Курс предназначен для тех, кто хочет повысить интерактивность и удобство своего сайта для посетителей.

Изучив его, Вы сможете создавать более красивые и функциональные сайты.

104 видеоурока: от основ JavaScript до готовых решений на jQuery.

Подробнее->

Повелитель PHP: кратчайший путь к мастерству без толстых учебников.

Курс предназначен для тех, кто хочет освоить язык PHP и свободно с ним работать.

Изучив его, Вы сможете при разработке сайтов решать любые задачи, требующие знаний PHP.

Подробнее->

*Наведите курсор мыши для приостановки прокрутки.


Массивы в PHP: начальный индекс, отличный от нуля и хранение нескольких элементов для одного ключа массива

Пусть перед нами стоит достаточно частая задача - присвоить значения для нескольких элементов массива за один раз при том, что начальный индекс не должен быть равен нулю.

Решение очень простое, главное - просто знать о его существовании. Мы говорим фукции array(), что ей нужно использовать другой начальный индекс при помощи синтаксиса "=>":


$days = array(1 => 'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница');

Первый индекс со значением "0" далеко не всегда удобен. Скажем, мы хотим, чтобы среди дней недели понедельник имел индекс 1, а не 0.

Теперь для вывода дней недели и их порядковых номеров можно воспользоваться конструкцией:


foreach ($days as $number => $day)
{
    echo "$number: $day<br>";
}

а не так:


foreach ($days as $number => $day)
{
	$number++;
    echo "$number: $day<br>";
}

Само собой, можно "стартовать" не только с 1, но и с любого другого числа:


$days = array(4 => 'Четверг', 'Пятница', 'Суббота');

Альтернативный вариант:


$days = [4 => 'Четверг', 'Пятница', 'Суббота'];

Более того, можно использовать конструкцию "=>" несколько раз в одном вызове:


$days = array(2 => 'Вторник', 'Среда', 6 => 'Суббота', 'Воскресенье');

Альтернативный вариант:


$days = [2 => 'Вторник', 'Среда', 6 => 'Суббота', 'Воскресенье'];

Как дополнительный "бонус", PHP позволяет использовать отрицательные числа при вызове array() и даже нецелочисленные ключи. Редко, когда это необходимо, однако знать о такой возможности полезно.

Формально при таком подходе мы получаем ассоциативный массив, хотя, как мы уже говорили, граница между числовыми и ассоциативными массивами в PHP часто оказывается размытой. Например:


$tsars = array(-2 => 'Иван Калита', 'Василий 3', 'Иван 4');

Альтернативный вариант:


$tsars = [-2 => 'Иван Калита', 'Василий 3', 'Иван 4'];

Можно также в одном определении array() смешивать числовые и строковые ключи, однако такой подход неудобен для восприятия и редко когда бывает необходим:


$tsars = array(1 => 'Иван 1', 'Иван 2', 'Великий' => 'Иван 3', 'Иван 4')

Альтернативный вариант:


$tsars = [1 => 'Иван 1', 'Иван 2', 'Великий' => 'Иван 3', 'Иван 4']

Если добавлять эти записи в массив поочередно, то получится следующее:


$tsars[1]          = 'Иван 1';   // Ключ 1
$tsars[]           = 'Иван 2';   // Ключ 1 + 1 => 2
$tsars['Великий']  = 'Иван 3';   // Ключ 'Великий'
$tsars[]           = 'Иван 4';   // Ключ 2 + 1 => 3


Хранение нескольких элементов для каждого ключа

Периодически у нас может возникнуть необходимость связать с одним ключом массива несколько элементов. Сделать это можно, задав массив такого вида:


$fruits = array ('красный' => array ('гранат', 'клубника'),
				 'желтый' => array ('банан'));

Либо можно использовать объект:


while ($obj  = mysqli_fetch_assoc($r))
{
	$fruits[] = $obj;
}

При создании массива в PHP ключи должны быть уникальны на уровне массива, поэтому связать несколько элементов с одним ключом не удастстя - произойдет перезапись старого значения.

Для того, чтобы реализовать эту задачу, нужно сохранить необходимые значения в так называемом анонимном массиве:


$fruits = array();

$fruits['красный'][] = 'гранат';
$fruits['красный'][] = 'клубника';
$fruits['желтый'][] = 'банан';

print_r($fruits);

На выходе получим следующую распечатку:


Array
(
	[красный] => Array
			(
				[0] => гранат
				[1] => клубника
			)
	[желтый] => Array
			(
				[0] => банан
			)
)

Либо, если элементы обрабатываются в цикле:


while (list($color,$fruit) = mysqli_fetch_assoc($r))
{
	$fruits[$color][] = $fruit;
}

Чтобы вывести значения элементов нам нужно перебрать в цикле содержимое массива:


foreach ($fruits as $color => $color_fruit) // $color_fruit - массив
{
	foreach ($color_fruit as $fruit)
	{
		echo "$fruit имеет $color цвет.<br>";
	}
}

На этом пока всё, закругляемся.

Понравился материал и хотите отблагодарить?
Просто поделитесь с друзьями и коллегами!


Смотрите также:

PHP: Получение информации об объекте или классе, методах, свойствах и наследовании

PHP: Получение информации об объекте или классе, методах, свойствах и наследовании

CodeIgniter: жив или мертв?

CodeIgniter: жив или мертв?

Функции обратного вызова, анонимные функции и механизм замыканий

Функции обратного вызова, анонимные функции и механизм замыканий

Применение функции к каждому элементу массива

Применение функции к каждому элементу массива

Слияние массивов. Преобразование массива в строку

Слияние массивов. Преобразование массива в строку

Деструктор и копирование объектов с помощью метода __clone()

Деструктор и копирование объектов с помощью метода __clone()

Эволюция веб-разработчика или Почему фреймворк - это хорошо?

Эволюция веб-разработчика или Почему фреймворк - это хорошо?

Магические методы в PHP или методы-перехватчики (сеттеры, геттеры и др.)

Магические методы в PHP или методы-перехватчики (сеттеры, геттеры и др.)

PHP: Удаление элементов массива

PHP: Удаление элементов массива

Ключевое слово final (завершенные классы и методы в PHP)

Ключевое слово final (завершенные классы и методы в PHP)

50 классных сервисов, программ и сайтов для веб-разработчиков

50 классных сервисов, программ и сайтов для веб-разработчиков

Наверх