Как сделать из одномерного массива двумерный php
Многомерные массивы — это такие массивы, которые хранят другие массивы по каждому индексу в качестве элемента. Другими словами, многомерные массивы можно именовать как массив массивов. Как следует из названия, каждый элемент в этом массиве может быть массивом, и они в свою очередь также могут содержать другие подмассивы внутри себя.
- В двумерном массиве для получения доступа к элементам нужно указать два индекса.
- В трёхмерном массиве для получения доступа к элементам нужно указать три индекса.
Создание многомерных массивов
Многомерный массив можно рассматривать как таблицу, где каждый элемент в родительском массиве представляет строку таблицы, а элементы каждого дочернего массива представляют столбцы этой строки.
Сохраним данные из таблицы в двумерном массиве:
$favorites = array(
array("name" => "Андрей","mob" => "5689741523","email" => "[email protected]"),
array("name" => "Иван","mob" => "2584369721","email" => "[email protected]"),
array("name" => "Тома","mob" => "9875147536","email" => "[email protected]"),
array("name" => "Ира","mob" => "1775147536","email" => "[email protected]")
);
Теперь двумерный массив $favorites содержит четыре массива и имеет два индекса: строку и столбец.
Доступ к элементам многомерного массива
Чтобы понять, как получить доступ к элементам многомерного массива, продолжим использовать аналогию с таблицами. Для получения доступа к элементу многомерного массива нужно сначала указать строку массива, к которой мы хотим получить доступ. Во-вторых, нужно указать столбец в этой строке. Таким образом для доступа к элементу мы указываем имя массива, а затем нужную строку и столбец массива, каждый из которых заключен в квадратные скобки ([]).
Например, чтобы получить доступ к телефону Ивана в нашем массиве $favorites, мы должны указать на два индекса (строку и столбец):
Пример
Результат выполнения кода:
Этот же пример можно переписать так:
$favorites = array (
array("Андрей",5689741523,"[email protected]"),
array("Иван",2584369721,"[email protected]"),
array("Тома",9875147536,"[email protected]"),
array("Ира",1775147536,"[email protected]")
);
echo $favorites[1][1]; // 2584369721
Если в первом случае для доступа к элементу мы указали номер строки и ключ столбца, то здесь — номер строки и номер столбца.
Получить доступ к элементам массива можно также поместив цикл for внутрь другого цикла for . При этом также нужно указать два индекса:
Начать данную тему хотелось бы с отречённых примеров. Допустим, мы рассматриваем какого-либо человека. У него есть имя, фамилия, адрес, телефон, пол, рост, цвет глаз и так далее. Информацию по всем этим пунктам можно отнести к массиву данных о человеке.
Массив может быть другого типа, без какой-либо конкретики по пунктам. Будет только тема. Допустим, это web-прграммирование. А в качестве элементов будут языки - HTML, CSS, JavaScript, PHP, MySQL. Всего 5 элементов.
Исходя из последнего примера предположим массив:
web-программирование
1. HTML
2. CSS
3. JavaScript
4. PHP
5. MySQL
Теперь смотрим на данный пример и анализируем основные понятия.
Массив в PHP - это набор последовательно расположенных однотипных данных, связанных общей тематикой, число элементов которого фиксировано.
Массив в данном примере будет называться web-программирование.
У каждого элемента есть своё порядковое место, идентификатор.
Индекс (ключ массива) - либо порядковый номер, либо текстовое значение, по которому можно идентифицировать элемент.
Индексами в примере выше будут числовые значение от 1 до 5. При обращении к индексу 2 мы увидим CSS.
Пример массива в PHP
Теперь давайте рассмотрим вышеуказанный пример в синтаксисе PHP, а не русского языка. Допустим массив будет называться короче - web. В квадратных скобках [] будет вставлять индекс.
В качестве него могут быть либо числовые значения, которые рекомендую вставлять по порядку, либо текстовые значения (латинницей) и обязательно в кавычках. |
Давайте рассмотрим простой пример массива, где в значении индексов будут числовые значения, а создавать массив будем так, словно переменным присваиваем значения.
Одномерный массив
ИНДЕКСНЫЙ МАССИВ
Выше, с web-программированием, мы рассмотрели как раз пример одномерного массива.
Таким способом он создаётся редко. Он скорее наглядно показывает структуру массива. Чаще прибегают к другому методу.
Если не указать индекс, то заполнение значений индекса идёт с 0 (нуля). Первый элемент имеет индекс 0, второй 1, третий 2 и так далее. Более того, все счётчики программирования начинают отсчёт с нуля. |
Если Вы хотите задать значения индекса, то их надо указать следующим образом. Знак => является указателем для присваивания индекса значению или наоборот значению индекс.
В примере отсчёт начинается с 1. Переменная с индексом 0 вследствие этого пустая.
В следующем примере мы не будем указывать индекс.
Можно проследить, что происходит последовательное заполнение с нуля.
АССОЦИАТИВНЫЙ МАССИВ
Зачастую возникает потребность в создании буквенного индекса для элемента массива. Как я упоминал выше, такой индекс должен состоять из латинских букв, а имя должно быть заключено в кавычки. Рассмотрим на примере человека.
Как видите, всё достаточно просто. Только значение индекса закавычиваем.
Двумерный массив
Если Вы пропустили первую часть с Одномерным массивом , то настоятельно советую прочитать.
Если говорить проще, то это массив в массиве. То есть элементов большого массива является другой. Подобные массивы очень тормозят работу скрипта, загружая оперативную память, поэтому для быстрой обработки подобных групп данных созданы Базы Данных ( Что такое База данных? ), но о ней позже. Давайте разберём пример двумерного массива.
Во включенных массивах, как Вы обратили внимание, может быть разное количество элементов. Из части про одномерные массивы следовало, что у каждого элемента массива может быть индекс. Так давайте для каждого включённого массива присвоим своё значение.
Для этого расширим последнюю строчку и напишем её следующим образом.
Функции работы с массивами php
Foreach - циклическая функция для работы с массивами, в которой количество циклов равно количеству элементов массива.
Имеет следующий вид. Код PHP
Ну и сразу пример работы
На экран скрипт выведет
Деннис Ритчи
Кен Томпсон
Билл Гейтс
Стив Джобс
Count - функция, возвращающая количество элементов в массиве.
Sort - функция, сортирующая элементы массива. Удобна в случае числовых значений индекса.
Arsort - функция, сортирующая элементы массива в обратном порядке.
Unset - функция, удаляющая элемент массива.
Array_search - функция поиска в массиве. Имеет два аргумента. Проще говоря, имеет вил array_search('что', где)
Shuffle - функция, которая перемешивает ключи значений массива.
Элементы массива могут быть не только строками и числами, но и массивами. В этом случае у нас получится массив массивов или . В следующем примере массив $arr состоит из трех элементов, в свою очередь являющихся массивами:
Перепишем в более понятном виде:
В зависимости от уровня вложенности массивы могут быть двухмерными - массив массивов, трехмерными - массив массивов массивов (ну и так далее - четырехмерными, пятимерными и тп).
Приведенный выше массив является двухмерным, так как внутри одного массива расположены другие подмассивы и уже в этих подмассивах нет других массивов. Чтобы вывести какой-либо элемент из двухмерного массива следует писать уже не одну пару квадратных скобок, а две:
Дан следующий массив:
Выведите с его помощью элементы с текстом 'l' , 'e' , 'g' и 'a' .
Дан следующий массив:
Найдите сумму всех его элементов.
Трехмерный массив
Вот пример трехмерного массива:
Для вывода элементов из такого массива уже необходимо написать три квадратные скобки:
Дан следующий массив:
Найдите сумму всех элементов приведенного массива.
Ассоциативные массивы
Многомерные массивы также могут быть ассоциативными, например, вот так:
Давайте с помощью этого массива выведем на экран, к примеру, имя второго юзера:
Дан следующий массив:
Выведите с помощью этого массива имя первого мальчика и имя второй девочки.
Дан следующий массив:
Выведите с помощью этого массива английское название среды.
Дан следующий массив:
'user1', 'age' => 30, 'salary' => 1000, ], [ 'name' => 'user2', 'age' => 31, 'salary' => 2000, ], [ 'name' => 'user3', 'age' => 32, 'salary' => 3000, ], ]; ?>
Выведите с помощью этого массива сумму зарплат первого и третьего юзера.
Произвольные массивы
Многомерные массивы не обязательно должны быть такими, как мы рассмотрели выше. Посмотрите, например, на следующий массив:
Если переписать его в более понятном виде, то мы увидим, что этот массив "неправильный". В нем рядом с обычными элементами располагаются массивы:
Дан следующий массив:
Найдите сумму всех элементов приведенного массива, обратившись к каждому элементу по его ключу.
Здравствуйте. Помогите,пожалуйста,решить задачи. Заранее спасибо. Задача 1 Найти максимальный по абсолютному значению элемент массива. Задача 2 Найти сумму элементов,индексы которых,в сумме составляют к Задача 3 Найти среднее арифметическое элементов массива с точностью до двух десятичных знаков. Задача4 Найти сумму элементов, стоящих на главной диагонали. Задача 5 Найти сумму элементов, стоящих на побочной диагонали.
Как сравнить два двумерных массива полученных из MySQL количество строк может быть различно а столбцов одинаково. Нужно сравнить две таблици и если в каком либо элементе строки есть отличие вывести в таблицу. Спасибо заранее.
Читайте также: