Массив в php

9Здравствуйте уважаемые начинающие программисты.

В этой статье мы познакомимся с одной из основных, и наиболее часто встречающихся в php структур для хранения данных — массивом.

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

Массив, представляет из себя совокупность переменных одного типа, каждая из которых имеет свой индекс. По способу идентификации массивы делятся на два типа — числовые индексируемые массивы, и ассоциативные массивы.

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

Но давайте всё подробно и по порядку.

Создание одномерного массива с числовым индексом.

Имя массива, как и имя переменной начинается знаком доллара $.

Создать массив можно несколькими способами. Один из наиболее часто применяемых из них — использование конструкции array().

array() — языковая конструкция, предназначенная для создания массивов.

В круглых скобках, через запятую, располагаются элементы массива. Для вывода выбранного элемента на экран, применяется конструкция print

Пример:

<?php
$next=array("Чай", "Кофе", "Сок");
	print $next[1];
//Выводит Кофе
?>

Как видите, числовой индекс прописывается в квадратных скобках. Если программист не задаёт индекс, как в этом примере, то php делает это автоматически. Для присвоения индекса применяется оператор =>

Нумерация начинается с нуля — первый элемент, и далее возрастает на единицу, на каждом следующем элементе. Поэтому, в нашем примере, вызывая элемент с индексом 1, мы увидели второй по счёту — «Кофе».

Чтобы увидеть наглядно структуру и содержание массива, вместо конструкции print, применяется функция print_r, а для более удобно-читаемого отображения, эта функция заключается в тег <pre>.

<?php
$next=array("Чай", "Кофе", "Сок");
	echo "<pre>";
print_r($next);
	echo "</pre>";
/* Выводит структуру и содержание массива
Array
(
    [0] => Чай
    [1] => Кофе
    [2] => Сок
)*/ 
?>

Можно присваивать индекс самостоятельно.

<?php
$next=array(3 => "Чай", 7 => "Кофе", 8 => "Сок");	
print $next[3];
//Выводит Чай
?>

Ещё один способ создания массива — это создание массива при помощи квадратных скобок, без применения конструкций и функций.

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

<?php
$next[0] = "Чай";
$next[1] = "Кофе";
$next[2] = "Сок";
print $next[0];
//Выводит Чай
?>

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

<?php
$next[] = "Чай";
$next[] = "Кофе";
$next[] = "Сок";
	echo "<pre>";
print_r($next);
	echo "</pre>";
/*Содержание массива
Array
(
    [0] => Чай
    [1] => Кофе
    [2] => Сок
)*/
?>

Следующий способ создания числового массива — это создания числового массива функцией range().

range() создаёт массив содержащий диапазон чисел, причём в параметрах достаточно указать первое и последнее число диапазона.

<?php
$next = range(3,8);
	echo "<pre>";
print_r($next);
	echo "</pre>";
/*Содержание массива
Array
(
    [0] => 3
    [1] => 4
    [2] => 5
    [3] => 6
    [4] => 7
    [5] => 8
)*/
?>

Создание одномерного ассоциативного массива.

В отличие от числового массива, в ассоциативном, индекс присвоенный элементу должен вызывать ассоциацию с этим элементом. У индекса есть ещё одно, чаще применяемое, название — ключ. Ключ может содержать любые символы в неограниченном количестве

Способы создания такого массива, почти не отличаются от, рассмотренных выше, способов создания числовых массивов.

<?php
$next["Индийский"] = "Чай";
$next["Эспрессо"] = "Кофе";
$next["Апельсиновый"] = "Сок";
	print $next["Апельсиновый"];
//Выводит Сок
?>

Попробуйте самостоятельно посмотреть содержание массива, и создать массив с конструкцией array()

Ассоциативный тип очень удобен, когда нужно найти определённый элемент не перебирая весь массив.

Создание многомерного простого (числового) массива.

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

Давайте для начала напишем небольшое меню.

<?php
$next[0][0]="Напитки";
$next[0][1]="Выпечка";
$next[1][0]="Чебурек";
$next[1][1]="Пицца";
$next[1][2]="Слойка";
$next[2][0]="Чай";
$next[2][1]="Кофе";
$next[2][2]="Сок";
	
	echo "<h3>".$next[0][0].":</h3>";
for ($a=0; $a<=2; $a++)
{
	echo $next[2][$a]."<br>";
}
	echo "<h3>".$next[0][1].":</h3>";
for ($b=0; $b<=2; $b++)
{
	echo $next[1][$b]."<br>";
}
/*Выводит:

Напитки:

Чай Кофе Сок

Выпечка:

Чебурек Пицца Слойка*/
?>

Чтобы понять как это устроено и работает, давайте посмотрим структуру этого массива.

<?php
$next[0][0]="Напитки";
$next[0][1]="Выпечка";
$next[1][0]="Чебурек";
$next[1][1]="Пицца";
$next[1][2]="Слойка";
$next[2][0]="Чай";
$next[2][1]="Кофе";
$next[2][2]="Сок";
	echo "<pre>";
print_r($next);
	echo "</pre>";
/*Структура массива
Array
(
    [0] => Array
        (
            [0] => Напитки
            [1] => Выпечка
        )
    [1] => Array
        (
            [0] => Чебурек
            [1] => Пицца
            [2] => Слойка
        )
    [2] => Array
        (
            [0] => Чай
            [1] => Кофе
            [2] => Сок
        )
)
*/
?>

Отсюда видно что наш многомерный массив состоит из трёх вложенных массивов, один из которых содержит заголовки разделов меню, а два других их содержание.

При выводе на экран, заголовки выделяются тегом <h3>, затем в конструкции for создаются три выражения (переменная — значение):

1. $a = 0    — счётчик начала отсчёта элементов.
2. $a <= 2    - продолжительность цикла. 3. $a++    - шаг счётчика.После чего эти данные выводятся на экран в виде меню. В массив можно заложить гораздо больше элементов меню, и при необходимости выбирать, и выводить только те, которые нужны в данный момент.Кроме того, каждому элементу массива, можно дополнительно задать ещё несколько значений. Для этого каждому индексу массива задаётся несколько пар ключ-значение, что будет являться многомерным ассоциативным массивом.

<?php
$A["napitci_h"] = array("name"=>"Чай", "grade"=>"Лисма", "price"=>"25$");
$A["napitci_k"] = array("name"=>"Кофе", "grade"=>"Арабика", "price"=>"100$");
$A["napitci_s"] = array("name"=>"Сок", "grade"=>"Яблочный", "price"=>"10$");
//Затем обращаемся к нужному элементу массива
	print $A["napitci_h"]["name"]."<br>";
	print $A["napitci_h"]["grade"]."<br>";
	print $A["napitci_h"]["price"]."<br>"; 
?>

Как видите, при помощи функции print, можно обратится к любому элементу массива, указав дополнительный ключ.

Вообще-то, так как print является функцией, её параметры нужно заключать в круглые скобки,но PHP допускает обходиться без них.

И последний тип массива, который мы рассмотрим в этой статье — это многомерный массив смешанного индексирования. В таком массиве применяются и числовые и строковые индексы.

<?php
$next["Напитки"] [1] = "Чай";
$next["Напитки"] [2] = "Кофе";
$next["Напитки"] [3] = "Сок";
	print $next["Напитки"] [1];
?>

В PHP существует ещё много функций для работы с массивами, но цель этой статьи — показать только типы массивов, и некоторые способы их создания.

Работу с массивами будем проводить в отдельной статье.


Неужели не осталось вопросов? Спросить


Перемена

— Никогда не пытайся понять, то чего не можешь понять.
— Не понял…
— И не пытайся!

— Дорогой, когда мы поженимся, я буду делить с тобой все твои тревоги и заботы. — Но милая, у меня нет никаких тревог и забот. — Я же говорю — когда мы поженимся..

Управляющие конструкции в PHP < < < В раздел > > > Что такое SEO

Запись опубликована в рубрике PHP основы. Добавьте в закладки постоянную ссылку.

4 комментария на «Массив в php»

  1. stariс говорит:

    Исходник это CMS WordPress, шаблон TwentyTen. Сам я в комментах изменил только шрифт, всё остальное идет в шаблоне по умолчанию. Ёшё я отключил древовидные комментарии, так как особых диспутов на этом блоге не возникает, а вообще такая функция в шаблоне тоже есть.

  2. Сергей говорит:

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

  3. starik говорит:

    Заходите конечно. Я PHP тоже только учу, может поэтому так подробно получается.

  4. Urmat говорит:

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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *