—»     —»   Массивы PHP: функции массивов и многомерные массивы
  Раздел: Образование и Изучение   Нет комментариев  

Массивы PHP: функции массивов и многомерные массивы



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

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

Массивы PHP: функции массивов и многомерные массивы

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

Давайте возьмем пример $arrBooks из прошлого руководства, и расширим его до многомерного массива:

<?php
$arrBooks = array(
‘Comic’ => array(
‘Title’=>‘Superman’,
‘Author’=>’Jerry Siegel and Joe Shuster’,
‘Publication Date’ => ‘1938’),

‘Science Fiction’ => array(
‘Title’=>‘Dune’,
‘Author’=>’Frank Herbert’,
‘Publication Date’=>’1965’),

‘Fantasy’ => array(
‘Title’=>‘The Hobbit’,
‘Author’=>’J.R.R. Tolkien’,
‘Publication Date’=>’1937’),

‘Horror’ => array(
‘Title’=>‘Carrie’,
‘Author’=>’Stephen King’,
‘Publication Date’=>’1974’)
);
?>

Извлечение элементов из многомерного массива

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

<?
echo $arrBooks[‘Science Fiction][‘Title’];
echo "<br>";
echo $arrBooks[‘Horror’][‘Author’];
?>

Он отобразит нам:

Dune
Stephen King

Зацикливание многомерного массива

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

<?
foreach ($arrBooks as $obj_key =>$book)
{
echo "$obj_key Book:<br>";
foreach ($book as $key=>$value){
echo "$key: $value<br>";
}
echo "<br>";
}
?>

Отображение будет примерно следующим:

Comic Book:
Title: Superman
Author: Jerry Siegel and Joe Shuster
Publication Date: 1938

Science Fiction Book:
Title: Dune
Author: Frank Herbert
Publication Date: 1965

Fantasy Book:
Title: The Hobbit
Author: J.R.R. Tolkien
Publication Date: 1937

Horror Book:
Title: Carrie
Author: Stephen King
Publication Date: 1974

Функции массивов

Массивы – это один из наиболее удобных типов переменных. Наряду с их универсальностью, они также могут предоставить различные функции. В предыдущем руководстве мы использовали функцию is_array для того, чтобы определить, была ли переменная массивом, а также функцию sort для того, чтобы сортировать элементы массива. Давайте рассмотрим больше примеров функции массивов.

count($array): подсчитывать число элементов в массиве.

<?
$numBooks = count($arrBooks);
echo "There are $numBooks books in the collection.<br>";
?>

There are 4 books in the collection.

extract($array): конвертирует ассоциативные ключи массива в строчные переменные. Значение каждого ключа становятся значениями каждой переменной.

<?
$arrBooks = array( ‘Comic’ => ‘Superman’,
‘ScienceFiction’ => ‘Dune’,
‘Fantasy’ => ‘The Hobbit’,
‘Horror’ => ‘Carrie’);

extract($arrBooks);
// $arrBooks[‘Comic’] becomes $Comic
// $arrBooks[‘ScienceFiction’] becomes $ScienceFiction
// $arrBooks[‘Fantasy] becomes $Fantasy
// $arrBooks[‘Horror] becomes $Horror

echo "$Comic is a comic book.<br>";
echo "$Fantasy is a fantasy book.<br>";

?>

Superman is a comic book.
The Hobbit is a fantasy book.

extract($array, EXTR_PREFIX_ALL, ‘prefix’): добавляет префикс к строчной переменой для того, чтобы различить ее между массивами с одинаковыми ключами.

<?
$arrBooks = array(
‘Comic’ => ‘Superman’,
‘ScienceFiction’ => ‘Dune’,
‘Fantasy’ => ‘The Hobbit’,
‘Horror’ => ‘Carrie’);

extract($arrBooks, EXTR_PREFIX_ALL, "books");
// $arrBooks[‘Comic’] becomes $books_Comic
// $arrBooks[‘ScienceFiction’] becomes $books_ScienceFiction
// $arrBooks[‘Fantasy] becomes $books_Fantasy
// $arrBooks[‘Horror] becomes $books_Horror

echo "$books_Comic is a comic book.<br>";
echo "$books_Fantasy is a fantasy book.<br>";

$arrFilms = array(
‘Comic’ => ‘Superman Returns’,
‘ScienceFiction’ => ‘Terminator’,
‘Fantasy’ => ‘Dark Crystal’,
‘Horror’ => ‘Friday the 13th’);

extract($arrFilms, EXTR_PREFIX_ALL, "films");
// $arrFilms [‘Comic’] becomes $films_Comic
// $arrFilms [‘ScienceFiction’] becomes $films_ScienceFiction
// $arrFilms [‘Fantasy] becomes $films_Fantasy
// $arrFilms [‘Horror] becomes $films _Horror

echo "$films_Comic is a comic film.<br>";
echo "$films_Fantasy is a fantasy film.<br>";
?>

Superman is a comic book.
The Hobbit is a fantasy book.
Superman Returns is a comic film.
Dark Crystal is a fantasy film.

compact(var1, var2, var3): конвертирует список переменных в массив.

<?
$Comic = ‘Batman’;
$ScienceFiction = ‘Dreaming Void’;
$Fantasy = ‘American Gods’;
$Horror = ‘Frankenstein’;

$arrBooks2 = compact (‘Comic’, ‘ScienceFiction’, ‘Fantasy’, ‘Horror’);

foreach ($arrBooks2 as $key => $value) {
print "$value is an example of a $key book.<br>n";
}
?>

Batman is an example of a Comic book.
Dreaming Void is an example of a ScienceFiction book.
American Gods is an example of a Fantasy book.
Frankenstein is an example of a Horror book.

В следующем уроке мы рассмотрим больше функций массивов, включая такие функции как: “push”, “pop”, “shift”, “unshift” и “merge”.
Обнаружили ошибку или мёртвую ссылку?
Выделите проблемный фрагмент мышкой и нажмите CTRL+ENTER.
В появившемся окне опишите проблему и отправьте уведомление Администрации ресурса.
Нужна органическая вечная ссылка из данной статьи? Постовой?
Подробности здесь
Вам понравился материал? Поблагодарить легко!
Будем весьма признательны, если поделитесь этой статьей в социальных сетях:

Ключевые тэги: PHP
Опубликовал Design FactoRy   Прочитано (раз): 5997   |   Нет комментариев
Источник материала / оригинал статьи   Распечатать
Другие статьи и новости по теме:
Добавление комментария
Уважаемые пользователи!
При добавлении комментариев на сайт Вам следует учитывать следующее - все комментарии проверяются Администрацией на предмет отсутствия спама. При обнаружении признаков спама, в оставленном Вами комментарии, сам комментарий будет незамедлительно удалён, а Ваш IP-адрес будет забанен без предупреждения! Учётные записи пользователей, рассылающих спам, блокируются/удаляются без права последующего восстановления.

С уважением, Администрация сайта.
* = поля обязательны к заполнению
Полужирный Наклонный текст Подчеркнутый текст Зачеркнутый текст | Выравнивание по левому краю По центру Выравнивание по правому краю | Вставка смайликов Выбор цвета | Скрытый текст Вставка цитаты Преобразовать выбранный текст из транслитерации в кириллицу Вставка спойлера
Вопрос : Назовите месяц November по-русски
Подтверждение кода безопасности :

Включите эту картинку для отображения кода безопасности
обновить, если не виден код


Популярные публикации


















Свежие шаблоны сайтов каждый день
С миру по нитке
«    Июль 2017    »
ПнВтСрЧтПтСбВс
 12
3456789
10111213141516
17181920212223
24252627282930
31